在我的查询中,我需要包含(以避免延迟加载)实体列表。
query.Include(x => x.ActionValues.Select(a => a.ActionValueDetails));
这没有任何问题,但在某些情况下我需要另一个急切的 ActionValueDetail 加载属性。 ActionValueDetail是它的许多其他实现的基类。对于这些情况,我的代码看起来像这样:
query.Include(t => t.ActionValues.Select(a => a.ActionValueDetails.OfType<ActionValueDetailSpecial>().Select(d => d.SpecialDetail)));
但这总是会引发异常。
Include路径表达式必须引用在类型上定义的导航属性。使用虚线路径作为参考导航属性,使用Select运算符作为集合导航属性。
我不知道如何解决这个问题。 在这种情况下,使用延迟加载或投影不是我的选择。对于非常大的导出,我们需要这个,以确保在我们写入流之前加载所有数据。
任何帮助都会很棒!