首页 > 解决方案 > EF Core TPH,获取基本实体时忽略鉴别器

问题描述

只是要明确一点:我看到一个标题相似的问题,但从我读到的却是相反的。

所以我有baseEntity并且subEntity源自baseEntity. (基本和子)实体都在 dbContext 中,并且 ef 核心自动创建默认鉴别器属性。添加它们中的任何一个都会正确地将鉴别器值设置为“baseEntity”或“subEntity”。

当我尝试使用它获取子实体列表时,DbContext.Set<SubEntity>().ToList()它工作正常,只返回子实体(鉴别器等于“子实体”的记录)。问题是当我尝试使用DbContext.Set<BaseEntity>().ToList(). 它忽略鉴别器,不仅返回鉴别器字段中带有“BaseEntity”的记录,还返回带有“SubEntity”鉴别器的记录。

如何仅返回具有“BaseEntity”鉴别器的实体?如果我有两个从基础实体派生的子实体并且只有它们在 dbContext 中,它可能会有所帮助,但是一个实体将完全是空的,因为一切都已经在基础实体中,所以我想避免这种解决方案。

标签: c#.net-coreentity-framework-core

解决方案


推荐阅读