【发布时间】:2018-02-24 22:01:59
【问题描述】:
在大查询后我有以下分组类型:
IQueryable<IGrouping<Type1, IGrouping<Type2, Type3>> result;
var executedQuery = result
.Include(a => a.Select(b => b.Select(c => c.Type3Property)))
.ToList();
我也尝试过 SelectMany,但我总是收到以下错误:
“System.ArgumentException”类型的异常发生在 EntityFramework.dll 但未在用户代码中处理
附加信息:包含路径表达式必须引用 在类型上定义的导航属性。使用虚线路径 参考导航属性和用于集合的 Select 运算符 导航属性。
我不能在查询中使用 Include,因为它在分组之前不起作用。
当我搜索此内容时,似乎每个人都认为 Select 可以很好地处理集合,我的情况有什么问题?
【问题讨论】:
-
这种形式的选择语句确实看起来很奇怪。但是,它说该属性不是导航属性。实体配置正确吗?
-
是的,它是 EF 从数据库中自动生成的。该属性是虚拟的,如果我不使用分组,并且只选择 Type3 实体,Include 就可以了。
标签: c# .net entity-framework