实体框架代码第一个库和数据库更新含义

时间:2014-03-26 17:10:51

标签: entity-framework deployment ef-code-first library-project

我们最近开始使用Entity Framework来访问我们定期访问的所有各种数据库。我们已经建立了一系列图书馆项目,每个项目都有一个。对于他们中的许多人来说,我们正在访问不会改变的已建立的数据库,并且首先使用DB非常有用。

但是,对于某些项目,我们正在开发不断变化的数据库,这些数据库会定期添加新的字段和表格。因为这些库由多个项目使用(目前只有两个,但最终还有更多),在生产数据库上运行迁移需要重新发布使用该特定DB库的两个/所有站点。无法更新任何其他站点上的库当然会产生支持上下文的模型已更改的错误。

我们如何有效地管理Code-First库的部署/更新到每次对数据库进行更改时使用它们的所有站点?

1 个答案:

答案 0 :(得分:0)

一年后,这就是我们提出并一直在使用的内容。

我们现在在Application_Start()方法中包含以下行:

Database.SetInitializer<EFLib.MyHousing.MyHousingMVCContext>(null);

如果当前数据库模型与代码中的内容完全匹配,则会导致它不合适。虽然如果进行非向后兼容的更改仍有可能出现问题,但这允许添加新功能,而无需在影响更改与特定站点无关时重新部署使用这些库的每个站点。