2012-10-19 67 views
3

我有我的查詢都加入這樣的沒有加入Linq中

IQueryable<Auction> closed = 
       (from a in CurrentDataSource.Auctions 
       join p in CurrentDataSource.Payments 
        on a.Id equals p.AuctionId 
       where <some condition> 
       select a); 

我想真的是兩個表說給我哪裏有沒有加入與支付表或全部拍賣一些條件是成立的。我可以用T-SQL來做到這一點,但不知道如何用Linq做到這一點。你能幫我嗎?

+0

發佈您的工作SQL可以幫助轉換 – Aducci

回答

2

您可以使用左外連接並檢查付款爲空,就像在T-SQL中一樣。

IQueryable<Auction> closed = 
       (from a in CurrentDataSource.Auctions 
       join p in CurrentDataSource.Payments 
        on a.Id equals p.AuctionId into temp 
       from t in temp.DefaultIfEmpty() 
       where t == null && <some condition> 
       select a); 
+0

這裏沒有連接條件只給你匹配的行嗎? –

+0

@SachinKainth這是左外連接的語法,當與't == null'條件結合使用時,將僅給出沒有關聯支付的拍賣。請參閱LINQ左外連接文檔:http://msdn.microsoft.com/en-us/library/bb397895.aspx – goric