包含路径表达式树错误

时间:2014-12-24 06:04:17

标签: c# linq expression-trees

Expression<Func<SystemUser, object>>[] includeProperties = {
    x => x.Company.CompanyAddresses.Where(z=>z.AddressTypeId==5)
                                   .Select(y => y.Address.Country.CountryRegions)
};
var user = _SystemUserRepository.GetById(userID, includeProperties);

当我执行上面的查询时,它会抛出异常&#34; Include路径表达式必须引用在类型上定义的导航属性。使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性。&#34;

如果我删除&#34;其中&#34;来自查询的子句,它执行正常。

任何人都可以解释原因吗?

1 个答案:

答案 0 :(得分:1)

您需要先包含该属性。

尝试这样的事情:

x => x.Company.Include(y=>y.CompanyAddresses)
              .Where(z=>z.CompanyAddresses.AddressTypeId==5)
              .Select(y => y.Address.Country.CountryRegions)

您还可以参考this post并查看此SO Post (conditional include in linq to entities)