表达是查询Contains有种情况有个问题 返回
C#论坛
老数据
3
1609
悬赏:0 飞吻
string ids = ",27,28,";
db.GetList(it => ids .Contains($",{it.q_id},"));
//这种查询方式,会把ID为2的数据也查询出来了,返回结果包含了ID为2 和27 ,28的共3条数据,相当于前后逗号没有起到作用
换成下面方式是可以得到想要的查询结果,但是为什么上面那种方式会出现ID为2的记录呢?
string[] qIds = ids .Split(',');
db.GetList(it =>SqlFunc.ContainsArray(qIds,it.q_id));
热忱回答(3)
-
gr3t+2 VIP0
2020/12/29你用的是字符串 转成sql后是 like
要用数字集合 转成sql后是 in
0 回复 -
fate stay night VIP0
2020/12/29IDS应该是个集合 list<int>
0 回复 -
华崽 VIP0
2020/12/29@gr3t+2:嗯,
11、操作In(1,2,3)
int[] allIds=newint[]{1,2,3};db.Queryable<OrderItem>().Where(it => allIds.Contains(it.OrderId)).ToList()//sql select * from OrderItem where odrderid in (1,3,3)这种int类型的是可以的,
0 回复