对实体框架中的现有实体进行更改

本文关键字:实体 框架 | 更新日期: 2023-09-27 18:25:45

假设我有一个使用实体框架设置的现有数据库。是否有一种机制可以让我安全地添加或删除实体(或其属性),从而自动更改数据库?

我知道有一个选项"从数据库更新模型"。是否有等效的"从模型更新数据库"?有没有一种方法可以将Visual Studio配置为自动执行此操作?

对实体框架中的现有实体进行更改

Entity Framework 4.3支持代码优先迁移。

EF帮助您检查代码和数据库之间的差异,然后为您生成处理这些更改的代码。您可以使用NuGet包管理器控制台来启用迁移,添加新的迁移并在数据库中运行(或创建sql脚本)。

这个博客解释了迁移是如何工作的,这个博客展示了如何将其与现有数据库一起使用

更改数据库架构不是一个简单的操作(列是否已重命名,或者是新列?旧类型能否转换为新类型?),您可以很容易地从模型中推断出来。

EF不会为您更改表-当您更改时,它可以为您删除创建数据库。然而,如果您手动更改现有数据库以适应模型,EF似乎并不介意。看起来他们检查的是Hash(Model) = Hash(Tables)