我有一个包含二进制字段(表示为“bin”)的表,其中包含14个字节的数据。我想在这个字段上搜索如下:
from row in db.users where row.bin.SequenceEqual(data) select row
“data”变量的类型是byte []。 但是当我运行“q.Count()”时,我遇到以下错误:
LINQ to Entities does not recognize the method 'Boolean SequenceEqual[Byte] (System.Collections.Generic.IEnumerable`1[System.Byte], System.Collections.Generic.IEnumerable`1[System.Byte])' method, and this method cannot be translated into a store expression.
如何检索匹配二进制数据的数量?
由于
答案 0 :(得分:1)
如果您拥有数据模型,并且二进制数据是固定大小的字节数组,则可以将SQL数据类型从binary(14)
更改为char(21)
,使用Convert.ToBase64String
进入数据库的方式,以及Convert.FromBase64String
的出路。
切换到字符串会使您的数据可搜索:只需将搜索data
编码为base64字符串,并在搜索条件中使用==
运算符。
答案 1 :(得分:0)
你做不到。实体框架不支持使用二进制字段进行操作。