如题
select * from Skus where Skus.SkuString like '%1=1%2=2%'
这个语句在linq to entity中应该怎么写?
我用SqlMethods.Like会报如下错误:
LINQ to Entities 不识别方法“Boolean Like(System.String, System.String)”,因此该方法无法转换为存储表达式。
请大神指点一下,谢谢!
用Contains
string a;
List<model> list = this.Entities.WhereIf(m => a.Contains(m.属性名), m.属性名.IsNotNullAndEmpty())
.ToList();
用过了,但是contains无法做到多个字符同时模糊查询?
比如我要查询一个同时包含aa,bb,cc三个字符的字段。在数据库中我可以写成
select * from 某table where 字段 like (%aa%bb%cc%)
如果这些字符数量是不确定的,就需要程序帮忙处理,一直没有想到好的办法解决
@hanje: 不建议用太多linq查询语句,在程序中加载显示数据会比SQL语句要慢。
this.Entities.Where(m=>m.SkuString.Contains("1=1") && m.SkuString.Contains("2=2")
这样的逻辑吧
是的,我就是想达成这样一种效果,但是如果需要匹配的字符串数量是动态的话,这个语句就不知道要怎么写了,卡住了。。。
@hanje: 你的字符串总有规则的吧。找到规则然后分割出来,在逐个Contains