2

我有一个包含 14 字节数据的二进制字段(称为“bin”)的表。我想对该字段进行搜索,如下所示:

from row in db.users where row.bin.SequenceEqual(data) select row

“数据”变量的类型是字节[]。但是当我运行“q.Count()”时,我遇到了以下错误:

LINQ to Entities 无法识别方法“Boolean SequenceEqual[Byte]”
(System.Collections.Generic.IEnumerable`1[System.Byte],
System.Collections.Generic.IEnumerable`1[System.Byte])' 方法,
而且这个方法不能翻译成商店表达式。

如何检索匹配二进制数据的计数?

谢谢

4

2 回答 2

0

如果您拥有数据模型,并且您的二进制数据是小的固定大小的字节数组,您可以将 SQL 数据类型从 更改binary(14)char(21)Convert.ToBase64String在进入数据库的途中使用,并Convert.FromBase64String在退出时使用。

切换到字符串将使您的数据可搜索:只需将您的搜索编码data为 base64 字符串,并==在搜索条件中使用运算符。

于 2012-10-03T17:31:40.727 回答
0

你不能。实体框架不支持使用二进制字段进行操作。

于 2012-10-03T17:06:20.950 回答