我最近發現我無法從linq查詢中調用任何方法。我想寫一個查詢,在where子句比較兩個字節數組。數據庫上的值是一個Raw(32)類型的GUID,它作爲一個字節數組返回。這是此表的記錄ID。我需要將它與另一個字節數組進行比較。第二個字節數組可以轉換爲字符串,但因爲我不能從linq內調用方法,我無法比較。Linq查詢中的表達式
我綁定了一個自定義的「比較」方法,我也寫了一個擴展方法。所有收到一個錯誤,指示「LINQ to Entities does not recognized the method」
這是我正在嘗試做的代碼。 where子句導致此錯誤: LINQ to Entities無法識別方法'Boolean SequenceEqual [Byte](System.Collections.Generic.IEnumerable 1[System.Byte], System.Collections.Generic.IEnumerable
1 [System.Byte])''方法,並且此方法無法轉換爲存儲。表達」
EPSGEntities dbContex = new EPSGEntities();
byte[] byteArray = ParseHex(ViewState["itemID"].ToString());
var q = (from d in dbContex.EPSG_VSOREJECTS
where d.SDSRECID.SequenceEqual(byteArray)
select d).First();
您可以先從數據庫加載,然後對本地副本進行sequenceEqual比較嗎? – Thewads 2013-04-26 15:55:43
只是要清楚,你不能調用從'linq到sql'的方法,你可以只用linq到對象 – 2013-04-26 15:57:40
我想避免將整個表存儲到數據集/列表中,然後查詢它。我希望從linq查詢得到一個單一的結果 – user2275571 2013-04-26 16:47:24