在Linq中搜索byte []不能使用Contains函数

时间:2016-04-01 01:22:35

标签: c# sql-server linq

我正在尝试使用byte[]作为使用Entity Framework 6的查询的输入类型搜索sql数据库中的byte[]列。如果它是字符串字段,我可以使用Contains能正常工作的功能。该字段现已加密,因此我需要实现相同的搜索,但现在使用byte[]

我得到的错误信息是:

  

byte[]不包含“包含”

的定义

所以我应该在这里使用什么。以下示例中的所有字段都是byte []类型。

  (from v in db.Vendors
  where v.Code.Contains(item.Code) ||
  v.TradingName == item.TradingName
  select v).ToListAsync();

1 个答案:

答案 0 :(得分:0)

欢迎来到现实。二进制字段不能在SQL中搜索。无论谁决定使用加密技术来实现领域价值 - 显然忘记了他的作业是什么意思。最重要的是,如果你的这种方法有效 - 他还实施了一种愚蠢的(如:非常容易破解)加密方案。