我有一個小問題,我無法解決。 我想在Linq中使用SQL-In-Statement。我已經在這個論壇和其他論壇上讀過我必須使用.Contains(帶有逆向思考符號:-))。 作爲輸入,我有一個Guid列表。我第一次複製他們到一個數組,然後做類似的東西:問題與包含
datatoget = (from p in objectContext.MyDataSet
where ArrayToSearch.Contains(p.Subtable.Id.ToString())
select p).ToList();
datatoget是在匹配Subtable.Id(這是一個GUID)的所有記錄應保存的結果。 Subtable是MyData的Detail-Table,Id是Guid-Type。 我已經試過幾件事情(轉換的GUID的字符串,然後使用。載等), 但我總是得到一個異常,說:
「LINQ到實體」不能識別方法「布爾包含(System.Guid)和 無法將此方法轉換爲內存表達式。 (類似的東西,因爲我使用VS2008的德國版)
我使用與.NET 3.5 L2E和C#與VS AM程序2008
我讀過幾個例子,但它不起作用。這可能是因爲使用Guid而不是字符串? 我也試圖寫我自己的比較函數,但我不知道如何將它集成,以便.NET調用我的函數進行比較。
另請參見http://stackoverflow.com/questions/374267/contains-workaround-using-linq-to-entities – 2010-04-19 14:57:40
羅伯特是正確的這是一個3.5的副本,但也4.0直接支持'包含()'。 – 2010-04-19 16:11:49