2012-04-13 161 views
1

我正在使用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引发错误: 包含路径表达式必须引用的类型定义的导航属性。对于参考导航属性使用虚线路径,对集合导航属性使用Select运算符。 参数名称:路径

这对使用.Include()函数来说甚至是不可能的,但如果没有,还有另一种方法吗?我真的很想只打一个电话给数据库。

+0

这有什么不好?查询崩溃,你有错误,你没有没有结果? – 2012-04-13 15:28:40

+0

对不起,我编辑了我原来的文章 – user962926 2012-04-13 15:57:52

回答

1

你有没有尝试过,包括企业和地点如下:

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

完美!谢谢! – user962926 2012-04-16 17:39:28