我最近发现我无法从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