Linq 動態查詢

2022-01-13 10:43:16 字數 1069 閱讀 3732

如果是傳統的應用程式開發,採取動態拼 sql字串的形式就可以解決了,但linq**是沒辦法間歇性判斷而拼接.

首先ui上查詢條件的專案往往並不確定,如上圖目前有城市訂單數目,將來可能有新的專案要增加,結果將導致**頻繁更改,對於這種情況無論是拼sql時代,還是如今的linq都不太容易應對,故而當有新的查詢專案添進時,就多加乙個查詢條件。

另乙個問題,當城市輸入框為空時,那麼對城市條件的限定則不應當加入linq語句。

比如string city = "";

linq語句片段:where c.city.contains(city);

當city為空時,上述片段不應該成為在linq語句的一部分,這該怎麼辦呢? 總不能在linq**中間寫 if(city != "")吧?!

真正的技巧很簡單:

string city =queryitems.city;

int orderscount =queryitems.orderscount;

var query = from c in

dbcontext.customers

where (string.isnullorempty(city) ?true

: c.city.contains(city))

&& (orderscount == 0 ?true: c.orders.count >orderscount)

select

c;string querystring =query.tostring();

return query.tolist();

顯而易見,在where子句中可以使用三元運算子進行條件判斷:

當條件不符合時返回乙個true值,linq在翻譯為sql語句時將忽略true;

而條件符合時將返回預期的表示式語句。

Linq 動態查詢

最近在做專案中用到了linq to sql,在用的時候感覺很,寫的 也少 提高了開發的週期 但是在開發的過程中我們還是碰到很多的東西,由於是第一把linq用到專案中,原來是寫個小的demo 沒有過多的用到他的優點 看看我的文件目錄吧 第二 就可以寫查詢的 了 public partial class...

linq動態查詢

近日做幾個專案用到linq動態查詢,但微軟官方所提供的那些動態查詢機制相當複雜,網上也有不少發過一些動態查詢的方案,本人覺得那些方案比較繁索,也不易理解,今提供一種易理解簡單實用的方法.方法如下 在中間層寫 public listgettransferlogbycondition datetime?...

Linq 動態查詢庫

原文發表日期 monday,january 07,2008 11 02 pm linq 語言級整合查詢 是vs 2008 和 net 3.5中提供的乙個新特性。linq使得資料查詢的概念成為.net中的一等程式設計概念,允許你在你喜歡的程式語言中有效地表達查詢。linq的乙個好處是,它允許你使用 v...