EF RenameColumn 参数 anonymousArguments 在 c# 中不支持 lambda,但在 VB
本文关键字:lambda 不支持 但在 VB RenameColumn 参数 anonymousArguments EF | 更新日期: 2023-09-27 18:33:44
在 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 方法不需要函数来指定列的类型(因为它只是重命名而不更改数据类型等)。这是调用重命名列的正确方法。
顺便说一句,这在 VB.NET 上编译的原因是编译器将您的函数存储在可选的 anonymousArguments 参数中,我们所有的迁移 API 都采用该参数(用于自定义迁移管道)。C# 编译器对允许放入此匿名类型的内容有更严格的限制。