我有一個方法來爲給定的類型,屬性和值建立一個linq查詢的表達式。只要該類型的屬性不可爲空,此功能就非常有用。這裏是我工作的例子(http://www.marcuswhitworth.com/2009/12/dynamic-linq-with-expression-trees)我正在調用屬性上的Equals方法。不過,我發現Nullable類型的Equals方法將Object作爲參數而不是Nullable類型。我試圖使用GetValueOrDefault隱藏空值,但EF不支持該方法。舉一個簡單的例子下面的代碼會拋出一個錯誤:如果您使用的==代替的Equals實體框架 - Linq - 無法創建類型爲「System.Object」的常量值。只有原始類型
decimal? testVal = new decimal?(2100);
var test = (from i in context.Leases where i.AnnualRental.Equals(testVal) select i).ToList();
但是()方法,將工作確定。我不知道如何將代碼轉換爲使用==而不是Equals()。任何建議將不勝感激。
爲什麼在這種情況下`==`不起作用? – cdhowie 2010-12-08 17:48:57