【发布时间】:2016-05-23 16:55:27
【问题描述】:
在我的模型中,我有一个 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();
}
Set 是 EF 上下文中的 IDbSet<User>。
问题是懒加载没有实现(我也不想实现),查询后的Transaction.User属性是null。一切都通过 EF 正确映射。
用非空User 检索所有Transactions 的查询应该是什么?
我正在使用 EF6。
【问题讨论】:
-
如果您想填充
User属性,那么您需要在您的交易中使用.Include("User")。试试from t in u.Transactions.Include("User")而不是from t in u.Transactions。 -
你能不能只做
select new t, t.User之类的事情 -
抱歉,
Set是 EF 上下文中的IDbSet<User> -
@mark 不,您不能从非动态方法返回匿名类型。
-
@Maarten 我试过了,但我得到了一个编译/智能感知错误,
Include无法解决。User.Transactions是ICollection<Transaction>
标签: c# .net entity-framework