2016-02-12 42 views
0

在我的模型中,我有一個User聚合根,每個聚合根都有一個關聯的Transactions的集合。每個Transaction都有一個反向導航屬性User使用EntityFramework在存儲庫中加載相關實體

我需要得到所有Transactions的一次,而這也導致了下面的查詢在我UserRepository

public ICollection<ITransaction> GetAllTransactions() { 

    return (from u in Set.Include("Transactions") 
      from t in u.Transactions 
      select t).ToList();  
} 

Set從EF上下文IDbSet<User>

問題是沒有執行延遲加載(我也不想實現它),查詢後的Transaction.User屬性爲null。一切都通過EF正確映射。

查詢應該如何檢索所有Transactions非空User

我正在使用EF6。

+1

,那麼你需要在你的交易'.INCLUDE(「用戶」)'。嘗試'從u.Transactions.Include(「用戶」)''而不是'從u.Transactions'中的t。 – Maarten

+0

什麼是'Set'? –

+0

你不能只是做一些像'選擇新的t,t.User' – markpsmith

回答

1

您需要實際上IncludeTransaction.User。這可能最終投射後,如果您想被填入了`User`財產做Transaction這樣

public ICollection<ITransaction> GetAllTransactions() 
{  
    return Set.SelectMany(u => u.Transactions).Include(t => t.User).ToList();  
} 
+0

完美地工作。 – Graham

相關問題