如何防止在 EDMX 更新后删除字段

Posted

技术标签:

【中文标题】如何防止在 EDMX 更新后删除字段【英文标题】:How to prevent fields from being dropped after an EDMX update 【发布时间】:2014-08-10 00:04:53 【问题描述】:

我有一个基于Oracle 11G数据库的EF 5.0 Database First模型,如下图:

BaseEntity(抽象) 身份证

BaseHistoricalEntity(抽象) 实体ID 创建日期 删除日期

TitleEntity 标题编号 IsDraft 注册日期 上次修改时间 最后修改者 TitleStatusId BuildTypeId OkvedId 交货日期 TitleBuildCharacteristics TitleTypeId BasePriceId 科斯古

所有实体都有一个主键 (Id)。因此它们派生自 BaseEntity

Title 表具有来自 BaseHistoricalEntity 实体的额外三个字段。

实体ID 创建日期 删除日期

Title 表映射到三个派生实体,如下所示:

BaseEntity->BaseHistoricalEntity->TitleEntity

当我在数据库中的其他表中添加/删除字段,然后更新 EDMX 模型时,会从 EDMX 文件中删除以下字段定义:

<ScalarProperty Name="EntityId" ColumnName="ENTITY_ID" />
<ScalarProperty Name="CreateDate" ColumnName="CREATE_DATE" />
<ScalarProperty Name="DeleteDate" ColumnName="DELETE_DATE" />

数据库更改后我应该如何保存这些字段?

【问题讨论】:

【参考方案1】:

从这里:https://entityframework.codeplex.com/workitem/2351EF 团队分类:这是设计使然(尽管可以说是一个糟糕的设计)。从数据库更新模型功能旨在将更改合并到它创建的模型中,如果您开始编辑模型(添加继承等),那么向导将无法始终成功合并更改。 从数据库更新模型存在很多问题,我们有关于如何以更健壮的方式重新创建它的想法。不幸的是,修复当前的实现是不可行的。

【讨论】:

以上是关于如何防止在 EDMX 更新后删除字段的主要内容,如果未能解决你的问题,请参考以下文章

在mongodb中保存或更新文档时如何防止更新“updatedAt”字段?

Spring Data Rest - 如何防止通过 PATCH 更新特定字段?

使用 SqlDataAdapter 防止仅更新某些列

防止 Access 表单中的整个字段被突出显示

如何防止 Hibernate 更新 NULL 值

mysql 插入数据如何防止重复