gpt4 book ai didi

c# - 如何在数据库更新之前保存 DataBaseModel.edmx 更新?

转载 作者:行者123 更新时间:2023-11-30 17:37:32 25 4
gpt4 key购买 nike

我目前正在研究使用 .NET 工具(ASP.NET、MVC)进行 Web 开发,但我不确定我的想法是否正确。

我已经有一个我想参与的项目。它有 DataBaseModel.edmx,我知道如何从这个模型生成数据库元素。现在我需要根据新要求调整 DataBaseModel,所以我编辑了它并想保存我的更改以生成代码和新脚本来为数据库添加表,但框架希望我将新实体与现有表相匹配。可是等等!我的表中没有这些新实体,我想创建它们,但我做不到,因为我需要先匹配它们!

你能指出我这里有错吗?我需要如何调整模型才能正确更新数据库?我浏览了互联网,但仍然没有明白这一点。

最佳答案

您在项目中使用数据库优先方法,但您正在考虑模型优先方法。

代码优先

•非常流行,因为硬核程序员不喜欢任何类型的设计器,而且在 EDMX xml 中定义映射太复杂。

•完全控制代码(没有难以修改的自动生成代码)。

•一般的期望是您不必理会数据库。 DB只是一个没有逻辑的存储。 EF 将处理创建,您不想知道它是如何完成这项工作的。

• 对数据库的手动更改很可能会丢失,因为您的代码定义了数据库。

数据库优先

• 如果您有由 DBA 设计、单独开发的数据库,或者如果您有现有的数据库,则非常受欢迎。

• 您将让 EF 为您创建实体,并在修改映射后生成 POCO 实体。

• 如果您想要 POCO 实体中的其他功能,您必须 T4 修改模板或使用部分类。

• 可以手动更改数据库,因为数据库定义了您的领域模型。您始终可以从数据库更新模型(此功能非常有效)。

• 我经常将它与 VS 数据库项目一起使用(仅限 Premium 和 Ultimate 版本)。

模型优先

• 恕我直言,如果您是设计师迷(=您不喜欢编写代码或 SQL),则很受欢迎。

• 您将“绘制”您的模型并让工作流生成您的数据库脚本并让 T4 模板生成您的 POCO 实体。您将失去对实体和数据库的部分控制,但对于简单的小型项目,您的工作效率会很高。

• 如果您想要 POCO 实体中的其他功能,您必须 T4 修改模板或使用部分类。

• 对数据库的手动更改很可能会丢失,因为您的模型定义了数据库。如果您安装了数据库生成电源组,则效果会更好。它将允许您在 VS 中更新数据库架构(而不是重新创建)或更新数据库项目。

关于c# - 如何在数据库更新之前保存 DataBaseModel.edmx 更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37910793/

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