繁体   English   中英

EF RenameColumn参数randomArguments不支持c#中的lambda,但在VB.Net中支持(无法将lambda表达式转换为类型object)

[英]EF RenameColumn parameter anonymousArguments has no support for lambda in c# but does in VB.Net ( cannot convert lambda expression to type object)

在VB.Net中,我可以调整迁移(重命名属性时执行AddColumn和DropColumn),如下所示:

 RenameColumn("dbo.InvoiceLines", "Invoice_InvoiceID", "OrderId", Function(d) d.Int(nullable:=False))

在C#中,当我调整方法(而不是AddColumn和DropColumn)时,我尝试使用以下方法:

RenameColumn("dbo.InvoiceLines", "Invoice_InvoiceID", "OrderId",  c => c.Int(nullable: false));

但这给了我以下错误:

Cannot convert lambda expression to type object because it is not a delegate type

任何想法如何解决这个问题? 看起来C#不支持它(不确定)。 我正在使用SqlServer提供程序

这是我在Codeplex上收到的答案: https ://entityframework.codeplex.com/workitem/2882

-来自罗文

RenameColumn方法不具有指定列类型的函数(因为它仅重命名并且不更改数据类型等)。 这是调用RenameColumn的正确方法。

顺便说一句,它在VB.NET上进行编译的原因是,编译器将函数存储在我们所有迁移API都采用的(用于自定义迁移管道的)可选的randomArguments参数中。 C#编译器对允许放入此匿名类型的内容有更多限制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM