首页 新闻 赞助 找找看

linq to entity如何实现多个多个%的模糊查询?

0
悬赏园豆:10 [待解决问题]

如题
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)”,因此该方法无法转换为存储表达式。

请大神指点一下,谢谢!

hanje的主页 hanje | 初学一级 | 园豆:192
提问于:2018-10-21 11:13
< >
分享
所有回答(2)
2

用Contains

string a;

List<model> list = this.Entities.WhereIf(m => a.Contains(m.属性名), m.属性名.IsNotNullAndEmpty())
.ToList();

徒然喜欢你 | 园豆:1741 (小虾三级) | 2018-10-22 08:26

用过了,但是contains无法做到多个字符同时模糊查询?
比如我要查询一个同时包含aa,bb,cc三个字符的字段。在数据库中我可以写成
select * from 某table where 字段 like (%aa%bb%cc%)
如果这些字符数量是不确定的,就需要程序帮忙处理,一直没有想到好的办法解决

支持(0) 反对(0) hanje | 园豆:192 (初学一级) | 2018-10-22 10:49

@hanje: 不建议用太多linq查询语句,在程序中加载显示数据会比SQL语句要慢。

支持(0) 反对(0) 徒然喜欢你 | 园豆:1741 (小虾三级) | 2018-10-22 11:20
0

this.Entities.Where(m=>m.SkuString.Contains("1=1") && m.SkuString.Contains("2=2")

这样的逻辑吧

fangq | 园豆:417 (菜鸟二级) | 2018-10-22 10:46

是的,我就是想达成这样一种效果,但是如果需要匹配的字符串数量是动态的话,这个语句就不知道要怎么写了,卡住了。。。

支持(0) 反对(0) hanje | 园豆:192 (初学一级) | 2018-10-22 17:00

@hanje: 你的字符串总有规则的吧。找到规则然后分割出来,在逐个Contains

支持(0) 反对(0) fangq | 园豆:417 (菜鸟二级) | 2018-10-22 18:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册