![](/img/trans.png)
[英]Converting VB.NET code to C#: Cannot convert lambda expression to type 'Delegate' because it is not a delegate type
[英]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.