如果是傳統的應用程式開發,採取動態拼 sql字串的形式就可以解決了,但linq**是沒辦法間歇性判斷而拼接.
首先ui上查詢條件的專案往往並不確定,如上圖目前有城市、訂單數目,將來可能有新的專案要增加,結果將導致**頻繁更改,對於這種情況無論是拼sql時代,還是如今的linq都不太容易應對,故而當有新的查詢專案添進時,就多加乙個查詢條件。
另乙個問題,當城市輸入框為空時,那麼對城市條件的限定則不應當加入linq語句。
比如string city = "";
linq語句片段:where c.city.contains(city);
當city為空時,上述片段不應該成為在linq語句的一部分,這該怎麼辦呢? 總不能在linq**中間寫 if(city != "")吧?!
真正的技巧很簡單:
string city =queryitems.city;顯而易見,在where子句中可以使用三元運算子進行條件判斷: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();
當條件不符合時返回乙個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...