在我的模型中,我有一个User
聚合根,每个根都有一个关联的Transactions
集合。每个Transaction
都有一个反向导航属性User
。
我需要立即获取所有Transactions
,这导致我的UserRepository
public ICollection<ITransaction> GetAllTransactions() {
return (from u in Set.Include("Transactions")
from t in u.Transactions
select t).ToList();
}
来自EF上下文的 Set
是IDbSet<User>
。
问题是没有实现延迟加载(我也不想实现它),查询后的Transaction.User
属性是null
。一切都通过EF正确映射。
使用非空Transactions
检索所有User
的查询应该是什么?
我正在使用EF6。
答案 0 :(得分:1)
您需要实际Include
Transaction.User
。这可以在最终投影到Transaction
后完成
public ICollection<ITransaction> GetAllTransactions()
{
return Set.SelectMany(u => u.Transactions).Include(t => t.User).ToList();
}