List<User> GetAll();目的是构造这样的一个方法 List<User> GetAll(predicate);如果 GetAll()。Where(p=>p.Name=="aaa") 是在查询完全集后再赛选的,效率很低。怎么能把 p=>p.Name=="aaa" 转成 name='aaa'就像linq to sql那样 , 但是脱离linq to sql做底层,有什么好方法把lambda表达式翻译成条件语句,拼sql方式执行
2 回答
SMILET
TA贡献1796条经验 获得超4个赞
你好,
dudu大哥回复的确实可以.但是要注意DbContext在退出上下文后的SqlConnection被关闭的这个问题
而我一般的做法是
var result = new List<T>(); using (DbContext db = new DbContext()) { var queryable = db.xx.AsQueryable(); if (查询的变量有值) { queryable = queryable.Where(m => m.字段 == 查询值) } //重复上面的代码 result = queryable.ToList(); } return result;
以上伪代码未通过测试,请根据IDE提示进行修改一下就可以了
- 2 回答
- 0 关注
- 611 浏览
添加回答
举报
0/150
提交
取消