EF实现checkbox多选查询
业务需求:用户通过checkbox选择筛选条件,根据用户选择的条件查询出相应的数据
数据存储格式:“1,2,3,4”
传入参数格式:“1,3”
难点:1.用户选择的筛选条件是不确定的
2.要是实现参数和数据库信息一一对比
思路:因为参数数量不确定,那么就考虑动态参数。
那么问题来了,懂ef的都知道动态参数是一坑.这次万能的度娘虽然强大,但还是没能帮我解决这个问题,各种方法试下来还是跪了.
最后我基友告诉我一个解决方案。
解决方法:
//传入的参数 string[] arr = new string[]{"#1#","#3#"};
//数据库数据结构 "#1#2#3#4#5#" // #号是关键,也可以替换为其他符号
var list = xxx.GetAll(o=> arr.Any(e=>o.purpose.IndexOf(e) > -1 )).toList(); // Any:确定序列中的任何元素是否都满足条件。 // 通过Any来遍历参数,IndexOf来判断每个参数是否在数据中