五中方式分為定製查詢和智慧型查詢,定製查詢是確定有幾個條件並且每個條件都生效的,智慧型查詢是不確定條件個數和條件生效個數,具體看**
1 ilistlist = entities.bms_users.tolist();view code23 bms_users user = new
bms_users();45
#region mvc+ef多條件查詢解決辦法1 適用於智慧型查詢(不確定根據什麼條件查詢)
6///
/應用linqkit.dll外掛程式,適用於智慧型查詢(不確定根據什麼條件查詢)7//
var builder = predicatebuilder.true();8//
if (!string.isnullorempty(user.uname))9//
builder = builder.and(m => m.uname == user.uname);
10//
if (!string.isnullorempty(user.upwd))
11//
builder = builder.and(m => m.upwd == user.upwd);
12#endregion
1314
#region mvc+ef多條件查詢解決辦法2 適用於定製查詢(確定根據什麼條件查詢)
15///
/適用於定製查詢(確定根據什麼條件查詢)
16//
ilistlist2 = entities.bms_users.where(m => m.uname == "123" && m.upwd == "456").tolist();
17#endregion
1819
#region mvc+ef多條件查詢解決辦法3 適用於定製查詢(確定根據什麼條件查詢)
20///
/linq語句查詢,適用於定製查詢(確定根據什麼條件查詢)
21//
ilistlist3 = (from a in list
22//
where a.uname == "123" && a.upwd == "456"
23//
orderby a.uid descending
24//
select a).tolist();
25#endregion
2627
#region mvc+ef多條件查詢解決辦法4 適用於定製查詢(確定根據什麼條件查詢)
28///
/linq 適用於定製查詢(確定根據什麼條件查詢)
29//
ilistlist4 = (from a in list
30//
where a.uname == "123"
31//
where a.upwd == "456"
32//
orderby a.uid descending
33//
select a).tolist();
34#endregion
3536
#region mvc+ef多條件查詢解決辦法5 適用於智慧型查詢(不確定根據什麼條件查詢)
37///
/適用於智慧型查詢(不確定根據什麼條件查詢)
38//
var query = from a in entities.bms_users select a;
39//
if (!string.isnullorempty(user.uname))
40//
query = query.where(d => d.uname == "123");
41//
if (!string.isnullorempty(user.upwd))
42//
query = query.where(d => d.upwd == "456");
43//
ilistlist5 = query.tolist();
44#endregion
第一種智慧型查詢用了乙個linqkit.dll封裝庫,它提供了乙個動態新增條件的predicatebuilder方法,當然它的功能是非常強大的,不止這乙個用途,以後樓主會詳解的。
第二、三、四種定製查詢用了lambda或者linq語句,當然,他兩個是哥們,這兩種方式只適合提前知道幾種查詢條件的。
第五種智慧型查詢是拼接的lamdba表示式,簡單實用。有人會問了,在賦值var query的時候會不會把資料提前全部取出,然而並不會,linq只有在tolist()的時候才會去度資料,前面的判斷語句只會拼接lambda,不會去讀資料。
MVC EF 多條件查詢
根據以前的做法是拼接sql語句,這會增加維護成本,因為sql語句裡的內容不會報錯,所以在使用ef的時候必須要拋棄拼接sql語句的習慣。listlist null iqueryableresult ctx.vyw user ctx表示ef上下文if string.isnullorempty mobil...
五 DQL 條件查詢
dql 條件查詢 以上篇文章中的students為例 練習 1 查詢學生姓名為張三的學生所有資訊 select from students where sname 張三 2 查詢學生成績 60分的所有學生資訊 select from students where sgrade 60 3 查詢學生姓名...
NHibernate分頁獲取,通用條件查詢方法
解決問題 解決ui上使用nhibernate通用查詢方法 僅適用於多個條件聯合查詢 第一步 在ui層建立構造條件方法 private ilistgetcondition string customername string address if string.isnullorempty addres...