簡體   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