在Entity Framework中更改现有实体

时间:2012-02-26 07:13:02

标签: c# entity-framework-4

假设我使用Entity Framework设置了现有数据库。有没有一种机制可以安全地添加或删除实体(或它们的属性),以便自动更改数据库?

我知道可以选择“从数据库更新模型”。是否有等效的“从模型更新数据库”?有没有办法配置Visual Studio自动执行此操作?

2 个答案:

答案 0 :(得分:2)

Entity Framework 4.3具有Code First Migration支持。

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

This blog explains迁移的工作原理以及this blog展示了如何将其与现有数据库结合使用

答案 1 :(得分:0)

更改数据库模式不是一个简单的操作(有一个列已重命名,或者是新列?可以将旧类型转换为新类型吗?),您可以从模型中轻松推断出来。

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