我正在使用 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 引发的错误:包含路径表达式必须引用在类型上定义的导航属性。对引用导航属性使用虚线路径,对集合导航属性使用 Select 运算符。参数名称:路径
.Include() 甚至可能无法做到这一点,但如果没有,还有其他方法吗?我真的很想只调用一次数据库。