我有这样的代码实体:C#实体框架做字节数组包含在LINQ字符串where子句
context.myTable.Where(x => x.myByteArray.Contains(myString)).Load();
它不工作,因为字节数组没有“包含”的定义。所以,我想要做这样的事情:
context.myTable.Where(x => Encoding.Default.GetString(x.myByteArray).Contains(myString));
这也并没有因为异常的工作:
LINQ到实体无法识别方法“System.String的GetString(字节[]) '方法,并且此方法不能转换为商店表达式。
我怎样才能在我的字节数组中搜索字符串,然后使用Linq-to-Entities?
我不确定你真的可以做到这一点。您可以尝试将myByteArray放入列表中:x.myByteArray.ToList()。Contains(myString)。但是风险在于你将加载所有数据库......无论如何你无法比较这两个字符串,因为字节不是字符串...... – JBO
'SqlFunctions.CharIndex'。 –
您应该有实际支持文本的不同SQL列类型(如'varchar(max)')。尝试构建一个与你试图用EF做什么相当的SQL查询...如果你不能这样做,那么EF可能也会失败。 – grek40