在数据库更新之前,如何保存databasemodel.edmx更新



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

我已经有一个我想参加的项目。它具有databasemodel.edmx,我知道如何从该模型中生成数据库元素。现在,我需要调整DatabAsemodel的新要求,因此我对其进行了编辑,并希望保存更改以生成代码和一个新脚本,以添加数据库的表,但是Framework希望我将新实体与现有表匹配。可是等等!我的桌子上没有这些新实体,我想创建它们,但是我不能这样做,因为我需要先匹配它们!

你能指出我想在这里错了吗?我需要如何调整模型以正确更新数据库?我已经浏览了互联网,但我仍然没有得到重点。

您正在使用项目中的数据库第一种方法,但您正在使用模型第一方法。

代码首先

•非常受欢迎,因为铁杆程序员不喜欢任何形式的设计师,并且在EDMX XML中定义映射太复杂了。

•完全控制代码(没有自动化代码,很难修改)。

•一般期望是您不打扰DB。DB只是没有逻辑的存储空间。EF将处理创建,您不想知道工作如何。

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

数据库首先

•如果您拥有由DBA设计的DB,则非常受欢迎,单独开发或现有DB。

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

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

•可以对数据库进行手动更改,因为数据库定义了您的域模型。您始终可以从数据库中更新模型(此功能效果很好)。

•我经常将其一起使用与数据库项目(仅溢价和最终版本)。

模型首先

•如果您是设计师的粉丝,恕我直言(=您不喜欢写代码或SQL)。

•您将"绘制"模型,让WorkFlow生成数据库脚本和T4模板以生成Yout Poco实体。您将失去对您的实体和数据库的部分控制权,但是对于小型简单项目,您将非常有生产力。

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

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

最后,我已经了解了问题是什么。

在有关错误的所有消息中(其中大约有50个),有两个错误,因为两个关联似乎不再是实际的。这些关联使用我已经从模型中删除的字段。在模型的XML视图中更容易看到它。

一旦我删除了这些冗余关联,我就能从模型中生成数据库,然后所有工人罚款。

最新更新