为啥当删除和重新添加表到 .EDMX 时,一些表以不同的名称出现?

Posted

技术标签:

【中文标题】为啥当删除和重新添加表到 .EDMX 时,一些表以不同的名称出现?【英文标题】:Why when delete and Re-Add tables to .EDMX some tables appeared in different names?为什么当删除和重新添加表到 .EDMX 时,一些表以不同的名称出现? 【发布时间】:2022-01-17 02:43:07 【问题描述】:

我正在使用实体模型,我更新了一些表,我需要从数据库更新模型,

所以我从图表中删除了表并再次重新添加,但表名有问题,它没有显示为数据库中的名称,如下所示:

in the database table name                      After Re-add model name 

1-  Patients                                            Patient 

2-  LabTests                                            LabTest

3-  Customers                                           Customer

为什么它不像数据库名称那样显示

如何解决这个问题并在数据库中重新添加同名的表?

public virtual DbSet<Customer> Customers  get; set; 
        public virtual DbSet<LabTest> LabTests  get; set; 
        public virtual DbSet<Patient> Patients  get; set; 

我更新了模型和文件 Context.cs 中的表名称,

public virtual DbSet<Customers> Customers  get; set; 
        public virtual DbSet<LabTests> LabTests  get; set; 
        public virtual DbSet<Patients> Patients  get; set; 

但是当我打开 EDMX 图表时,它没有更新。

如何同时更新 Model.EDMX 上的名称?

【问题讨论】:

您说的是实体类型名称还是DbSet&lt;T&gt; 属性名称?实体类型名称通常应为单数,DbSet&lt;T&gt; 属性名称应为复数。 @DavidBrowne-Microsoft 是的,在从图表中删除之前可以,但在重新添加一些表格后以不同的名称显示 这看起来像是默认和推荐的方式。如果您想要不同的类型名称,您可以编辑 EDMX。 DbSet&lt;Customer&gt; 在概念上映射到数据库表`Customer 映射到该表中的单行。 @DavidBrowne-Microsoft 我更新了 context.cs 和模型中的名称,但未在图中更新如何更新 context.EDMX 上的名称? 【参考方案1】:

在旧的基于 EDMX 的 Database First 工作流程中,实体名称和实体集名称的复数/单数化在更新时由向导设置控制:

并且可以稍后在实体属性页面中更改:

【讨论】:

非常感谢三天以来我正在搜索并尝试解决此问题:)

以上是关于为啥当删除和重新添加表到 .EDMX 时,一些表以不同的名称出现?的主要内容,如果未能解决你的问题,请参考以下文章

更新EDMX文件时出错

为啥有些游戏在 iPhone 重新安装时会自动继续进行?

如何编辑表以启用 CASCADE DELETE?

从我的项目中删除 .edmx

Android - 配置 SQLite 表以满足我的需求

创建动态表以使用按钮添加新条目