具有对象列表的对象,其中包含对象列表Linq to Entities

时间:2012-04-13 15:18:19

标签: linq-to-entities

我正在使用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()甚至可能无法实现这一点,但如果没有,还有其他办法吗?我真的只想打电话给数据库。

1 个答案:

答案 0 :(得分:1)

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

_context.Accounts.Include("Companies.Locations");