MVC EF五種條件查詢獲取資料列表方式

2022-02-22 11:08:18 字數 2307 閱讀 4873

五中方式分為定製查詢和智慧型查詢,定製查詢是確定有幾個條件並且每個條件都生效的,智慧型查詢是不確定條件個數和條件生效個數,具體看**

1 ilistlist = entities.bms_users.tolist();

23 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

view code

第一種智慧型查詢用了乙個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...