List<User> GetAll();目的是構(gòu)造這樣的一個方法 List<User> GetAll(predicate);如果 GetAll()。Where(p=>p.Name=="aaa") 是在查詢完全集后再賽選的,效率很低。怎么能把 p=>p.Name=="aaa" 轉(zhuǎn)成 name='aaa'就像linq to sql那樣 , 但是脫離linq to sql做底層,有什么好方法把lambda表達式翻譯成條件語句,拼sql方式執(zhí)行
2 回答

SMILET
TA貢獻1796條經(jīng)驗 獲得超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;
以上偽代碼未通過測試,請根據(jù)IDE提示進行修改一下就可以了
- 2 回答
- 0 關注
- 639 瀏覽
添加回答
舉報
0/150
提交
取消