1

我正在使用 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() 甚至可能无法做到这一点,但如果没有,还有其他方法吗?我真的很想只调用一次数据库。

4

1 回答 1

1

您是否尝试过仅包括这样的公司和地点:

_context.Accounts.Include("Companies.Locations");
于 2012-04-16T11:51:49.327 回答