[英]lambda expression join multiple tables with select and where clause
[英]Where clause with Join in lambda expression
我正在將Lambda表達式用於帶有連接的條件子句。 這是我的查詢
var ActiveImages = db.tbl_Advertise
.Where(i => i.IsVisible == true)
.Join(db.tbl_ShopMast.Where(i => i.IsVisible == true && i.fk_userID == userid),
i => i.fk_shop_id,
j => j.ShopID,
(i, j) => new { Advertise = i, Shop = j})
.ToList();
或者我甚至可以將查詢查詢為:
var ActiveImages = db.tbl_Advertise
.Join(db.tbl_ShopMast.Where(i => i.IsVisible == true && i.fk_userID == userid),
i => i.fk_shop_id,
j => j.ShopID,
(i, j) => new { Advertise = i, Shop = j})
.ToList()
.Where(i=>i.Advertise.IsVisible == true);
哪一個工作更快? 盡管我注意到兩者都給出相同的輸出,但是哪種方法正確?
在第一個查詢中, where
子句在數據庫服務器上執行,而在第二個查詢中,它在客戶端計算機上執行。 因此,使用第一個查詢:
而第二個查詢則相反。 很難說哪個會更快。 在大多數情況下,您的第一個查詢會運行得更快,因此是首選,但是我見過類似第二個查詢的查詢運行得更快的場景。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.