我正在研究 EntityFrameworkCore.Cosmo 提供程序并遇到
HasNoDiscriminator
方法。 modelBuilder.Entity<Patient>().HasNoDiscriminator();
这是针对 Cosmos 的模型定制。
为了识别给定项目代表的实体类型,EF Core 添加了一个 即使没有派生实体类型,鉴别器值也是如此。这 鉴别器的名称和值可以更改。
如果没有其他实体类型存储在同一个容器中, 可以通过调用 HasNoDiscriminator 来删除鉴别器。
我怀疑目标是防止患者以外的其他实体存储在容器中。
如果不使用 HasNoDecriminator(),那么 EF Core 将在创建数据库时自动添加“鉴别器”列。
如果您确实使用它,则不会创建此列,并且它将节省少量磁盘空间。
不需要鉴别器,除非同一个容器中有多个实体类型,但通常情况并非如此。
因此建议在您的上下文中使用 HasNoDecriminator() 。