我最近发现我无法从 linq 查询中调用任何方法。我正在尝试编写一个查询,在 where 子句中比较两个字节数组。数据库中的值是 Raw(32) 类型的 GUID,它以字节数组的形式返回。这是此表的记录 ID。我需要将它与另一个字节数组进行比较。第二个字节数组可以转换为字符串,但由于我无法从 linq 中调用方法,因此无法进行比较。
我绑定了一个自定义的“比较”方法,我还写了一个扩展方法。所有人都收到一个错误,指示“LINQ to Entities 无法识别该方法”
这是我正在尝试做的代码。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();