HasNoDiscriminator 在 EFCore 中的使用

问题描述 投票:0回答:2

我正在研究 EntityFrameworkCore.Cosmo 提供程序并遇到

HasNoDiscriminator
方法。
保留下面的代码有什么用?

 modelBuilder.Entity<Patient>().HasNoDiscriminator();
c# entity-framework-core
2个回答
5
投票

这是针对 Cosmos 的模型定制。

为了识别给定项目代表的实体类型,EF Core 添加了一个 即使没有派生实体类型,鉴别器值也是如此。这 鉴别器的名称和值可以更改。

如果没有其他实体类型存储在同一个容器中, 可以通过调用 HasNoDiscriminator 来删除鉴别器。

来源:Cosmos 特定模型定制

我怀疑目标是防止患者以外的其他实体存储在容器中。


0
投票

如果不使用 HasNoDecriminator(),那么 EF Core 将在创建数据库时自动添加“鉴别器”列。

如果您确实使用它,则不会创建此列,并且它将节省少量磁盘空间。

不需要鉴别器,除非同一个容器中有多个实体类型,但通常情况并非如此。

因此建议在您的上下文中使用 HasNoDecriminator() 。

© www.soinside.com 2019 - 2024. All rights reserved.