gpt4 book ai didi

c# - Entity Framework 4.0 Model First继承在从数据库更新模型后丢失

转载 作者:行者123 更新时间:2023-11-30 21:12:41 24 4
gpt4 key购买 nike

在我的应用程序中,我首先使用实体​​框架 4.0 模型。我有几个实现继承的表,例如作为基表的 Product 和继承自 Product 的 SpecificProduct

继承在 edmx 文件中可见。为了初始设置数据库,我右键单击设计器并选择“从模型生成数据库”,这会生成一个 SQL 创建脚本。

假设我在 SQL 数据库中对 SpecificProduct 表做了一些更改,并且想要升级模型。显然,我将从我的 edmx 文件中删除表 SpecificProduct,然后右键单击 edmx 设计器并选择“从数据库更新模型”。
这导致 ProductSpecificProduct 之间的继承丢失。我有一个 1 到 0..1 的关系而不是继承,Product 的主键现在也是 SpecificProduct 的列。
这实际上不是我想要的方式,因为我的项目将不再构建,因为我的代码依赖于可用的继承。

我可以在设计器文件中手动修复此问题,方法是删除插入的主键列到 SpecificProduct 中,删除新的 1 到 0..1 关系,然后再次在 edmx 设计器中插入继承.
没有办法自动执行此操作吗?

或者这仅仅是 Model First 尝试的一个限制,我没有意识到(并且不会再次选择,如果这真的是一个限制)?

最佳答案

您不得从 EDMX 文件中手动删除任何内容。一旦删除它,您的映射就会丢失。继承必须始终手动映射,因为数据库层对此一无所知。你总是start with basic relations您必须将其删除并将其更改为继承。

因此,在您的情况下,请尝试简单地从数据库运行更新而不删除您的实体。新列应作为属性添加到您的实体。顺便提一句。模型优先和数据库优先之间没有交换。使用第一种方法或第二种方法。不支持组合它们。

关于c# - Entity Framework 4.0 Model First继承在从数据库更新模型后丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7316536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com