如何查询所有类型的实体,但每个层次结构的表中只有一个?

时间:2018-01-22 04:39:06

标签: entity-framework-6 table-per-hierarchy oftype

我正在尝试做一些看似非常简单的事情。我想查询每个层次结构中表中的所有类型,但一种类型除外。这必须作为单个(可分页)数据库查询运行。

要返回单一类型,我可以致电IQueryable<T>.OfType<T>()。我没有看到任何方式传递类型的子集。据我所知,Discriminator不能作为模型属性公开,因此我无法使用任何类型的Where(x => x.Discriminator != value)调用进行过滤。

有人提出类似IQueryable<T>.Where(x => x is Type1 || x is Type2 || x is Type3)的内容,但我记得那种结构不正常。有人还建议对每种类型使用OfType,并通过Union调用加入,但我认为当我尝试从多种类型过滤单个类型时,这会产生一个性能较差的查询(例如排除只使用20种类型中的一种,使用18个工会)。

是否有一种已知的方法来执行我缺少的查询?

0 个答案:

没有答案