1
如何實現LEFT OUTER JOIN在LINQ to實體框架。 DefaultIfEmpty函數不受支持。 請提供一個例子。在.NET 3.5左外連接的實體數據模型asp.net
如何實現LEFT OUTER JOIN在LINQ to實體框架。 DefaultIfEmpty函數不受支持。 請提供一個例子。在.NET 3.5左外連接的實體數據模型asp.net
實體框架不提供左LINQ查詢中加入。獲取「連接記錄」的方式是通過實體之間的導航屬性。例如:
var query = from u in context.Users
select new
{
User = u,
Orders = u.Orders.Where(...) // Filtered left join but User and Order must be related
};
這在.NET 3.5中起作用。當你連接時沒有將「from」與FirstorDefault函數結合起來,它會給你在左連接表中尋找的行。如果你想多行,只需使用where()來代替。希望這有助於。
====
comments = from p in _db.Master
join t in _db.Details on p.DetailID equals t.DetailID into tg
select new
{
A = p.Column1,
//this next column is the one from the left joined table
B = tg.FirstOrDefault(t => t.DetailID == p.DetailID).Column2
};
的DefaultIfEmpty功能的EntityFramework 4.支持也許你可以給我們介紹一下你的情況下一些更多的信息,你想用什麼數據,以及哪個版本EF您的正在使用。 – 2011-05-07 09:10:24
@Jared Harding:我正在使用.net 3.5,在entitydatamodel中實現左外連接該怎麼做。 – 2011-05-07 09:18:22