我正在使用Linq to Entities,我想只调用一次数据库来获取一些数据。
我有一个帐户对象,可以有多个与之关联的公司。每家公司都可以拥有多个地点。我可以通过公司列表获得帐户没问题。问题是获取每个公司的位置列表并将其全部放回到帐户对象中。到目前为止,这是我的代码:
public Account GetAccountByUserId(int userId)
{
IQueryable<Account> oq = _context.Accounts;
oq = oq.Include(x => x.Companies);
oq = oq.Include(x => x.Companies.SelectMany(l => l.Locations); //I was just guessing here, this throws the error below
Account acct = oq.Single(x => x.Users.Any(y => y.Id == userId));
return acct;
}
.SelectMany抛出的错误: Include路径表达式必须引用在类型上定义的导航属性。使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性。 参数名称:路径
.Include()甚至可能无法实现这一点,但如果没有,还有其他办法吗?我真的只想打电话给数据库。
答案 0 :(得分:1)
您是否尝试过将这样的公司和地点包括在内:
_context.Accounts.Include("Companies.Locations");