none
請問如何實作動態LINQ to SQL? RRS feed

  • 問題

  • 請問如何實作動態LINQ to SQL?

    架如where條件是動態如何在LINQ實作?

    有和參考範例?

    除了下方法有沒其他方法!

          var data = (from r in db.PoVs
                where r.OrgId == 123
                 && ((r.Status == sv.Status) || (sv.Status == null))
                 && ((r.AgentId == sv.buyer_id) || (sv.buyer_id == null))
                 && ((r.BatchNumber == sv.batch_num) || (sv.batch_num == null))
                 && ((r.PoNumber == Convert.ToString(sv.po_num)) || (sv.po_num == null))
                 && ((SqlMethods.Like(r.Description.ToUpper(), sv.Desc + "%")) || (sv.Desc == null))
                 && ((r.PoDate.Date >= sv.PoDate_Beg) || (sv.PoDate_Beg == null))
                 && ((r.PoDate.Date <= sv.PoDate_End) || (sv.PoDate_End == null))
                 && ((r.CreationDate.Value.Date >= sv.CreateDate_Beg) || (sv.CreateDate_Beg == null))
                 && ((r.CreationDate.Value.Date <= sv.CreateDate_End) || (sv.CreateDate_End == null))
                select r);
    
    

     

    2011年5月5日 上午 07:08

解答

所有回覆

  • var q = from r in db.PoVs where r.OrgId == 123;

    q = q.Where(r => ((r.Status == sv.Status) || (sv.Status == null)));

    ... //以此類推.


    • 已標示為解答 Tony_Huang 2011年5月21日 下午 05:10
    2011年5月5日 上午 07:16
  • 我是都類似這樣做,你可以參考看看。

    var query = from p in oqAgentBranchRegs
    				join q in oqExchanges
    				on p.ExchangeNo equals q.SerialNo
    				join r in oqBrokerRels
    				on p.BranchId equals r.BrokerId
    				join s in oqAgentsCustodians
    				on p.AgentBrokerNo equals s.SerialNo
    				where r.ParentBrokerId == BrokerId
    				select new { p, q, r, s };
    if (!string.IsNullOrEmpty(StartSignedDate)) query = query.Where(o => o.p.SignedDate.CompareTo(StartSignedDate) >= 0);
    


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已標示為解答 Tony_Huang 2011年5月18日 上午 03:15
    • 已取消標示為解答 Tony_Huang 2011年5月18日 上午 03:16
    2011年5月5日 上午 08:32
  • hi,

    如果要動態增加如or之類的

    有個好用的類別庫叫做PredicateBuilder

    也許你會喜歡:d

    http://www.albahari.com/nutshell/predicatebuilder.aspx


    My Blog:http://www.dotblogs.com.tw/alonstar
    解決問題之後,別忘了回到論壇把正確回應標示成解答哦!
    • 已標示為解答 Tony_Huang 2011年5月18日 上午 03:16
    2011年5月17日 上午 08:08