2013年3月1日 星期五

Dynamic LINQ 組合查詢條件救星

Linq Query神技術 尤其用 orm (EX:entity framework) 的時候更是神兵利器

但是有個時候會被打敗

WTF...





原本很乾淨俐落的 Linq


            var q = db.Products
                .Where(x => x.ProductName.Contains("a"))
                .OrderBy(x => x.ProductID)
                .ToList();

頓時 Where() 跟 OrderBy() 裡面要放尛 全無方向





但是不要怕 如同星爺有懦夫救星 我們有Dynamic LINQ!!

介紹文http://blog.miniasp.com/post/2008/06/23/Introduce-LINQ-Dynamic-Query-Library.aspx





取得方式:第一百零一招~nuget

現在要怎麼做 你知道的 >w*


            var q = db.Products
                .Where(@"
                    ProductName.Contains(@0)
                    and UnitPrice >= @1
                    and UnitPrice <= @2",
                    "a",
                    10,
                    20)
                .OrderBy("ProductID")
                .ToList();

2 則留言: