1
如何在EF中包含它們時過濾實體的嵌套/子集合?實體框架(版本1或4)中的嵌套/子集合篩選
例如: 讓我們有標準的客戶訂單關聯。如何加載所有客戶,並在訂單集合中僅包含最後三個訂單?
是否有類似AssociateWith函數L2S for EF?
如何在EF中包含它們時過濾實體的嵌套/子集合?實體框架(版本1或4)中的嵌套/子集合篩選
例如: 讓我們有標準的客戶訂單關聯。如何加載所有客戶,並在訂單集合中僅包含最後三個訂單?
是否有類似AssociateWith函數L2S for EF?
不幸的是,實體框架中的對象服務API沒有提供基於條件選擇性加載關聯實體的方法。要解決這個問題
一種方式是投影在查詢結果時過濾相關實體:
context.Customers.Select(c => new
{
Customer = c,
LastOrders = c.Orders
.OrderByDescending(o => o.CreatedDate)
.Take(3)
.ToArray()
}
相關資源:
加上'.ToList ()。選擇(c => c.Customer)',你有你想要的。每個客戶在Orders'實體集合中只有最後3個訂單,但前提是您沒有在同一個環境中提前加載訂單。無需定義其他類型並使用匿名類。 – LukLed 2010-05-26 14:39:08