0
我有一些困難,這條SQL語句轉換爲LINQ:轉換SQL左連接到LINQ
Declare @ind date, @outd date
set @ind = '2012-03-17'
set @outd = '2012-03-18'
SELECT k.id
FROM Kennels k
LEFT JOIN (SELECT *
FROM Reservations
WHERE (DateIn >= @ind and DateIn < @outd) or (DateOut > @ind and DateOut <= @outd)) r ON k.id = r.Kennel_ID
WHERE r.kennel_id is null
的Linq:
Dim available = From k In Kennels _
Group Join r In db.Reservations.Where(Function(fx) (fx.DateIn >= Date_From And fx.DateIn < Date_To) Or (fx.DateOut > Date_From And fx.DateOut <= Date_To)) On k Equals r.Kennel Into Group _
From r In Group.DefaultIfEmpty
Where r.Kennel.ID Is Nothing
Select k
與我的LINQ語句中的問題是,當r是什麼,查詢中的「Where r.Kennel.ID」部分已經過期。
我很感謝一些幫助重寫這個查詢!
感謝,
湯姆
退房此鏈接:http://stackoverflow.com/questions/ 525194/linq-inner-join-vs-left-join – diaho 2012-03-08 04:54:14