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 关注
- 654 浏览
添加回答
举报
0/150
提交
取消
