entity-framework - 首先使用 EF 代码更改数据库架构时最简单的做法是什么

标签 entity-framework ef-code-first

首先我是 EF 代码新手。我在生产中有一个现有数据库,我首先使用 EF 4.3.1 代码,一切正常。现在我刚刚更新了我的数据库架构并得到了异常

System.InvalidOperationException: The model backing the 'MyDbContext' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).

我无法使用 DropCreateDatabaseIfModelChanges,因为它正在生产中,应对架构更改的最简单方法是什么?

谢谢。

最佳答案

由于 EF-CF 迁移是一个相当新的概念,我建议采用古老的经过验证的流程并对其进行修改,以与我们的新工具(例如 EF)一起使用。这就是我们所做的:

  1. 使用DropCreateDatabaseIfModelChanges为了本地的发展。这将允许您使本地开发副本与您的模型(在代码中)保持同步。每次构建/运行时,您都会获得更新的本地数据库。您还可以使用初始化程序来加载测试数据等。Database.SetInitializer<DBContextNameHere>(new DBContextInitializerNameHere());

  2. 使用 RedGate 的 SQLCompare 工具将本地开发与生产进行比较,并自动生成用于部署的更改脚本。 (注意:您还可以从工具自动部署)

http://www.red-gate.com/products/sql-development/sql-compare/index-b

主要好处是您不必更改本地开发流程,并且可以通过生成的脚本获得可重复的版本化部署。您还可以将其与 SQL 源代码控制工具结合使用,以将所有 SQL 对象和部署脚本(甚至数据)保留在源代码控制中。

不,我不为这些人工作,我只是喜欢他们的工具以及它如何帮助我解决同样的问题。

关于entity-framework - 首先使用 EF 代码更改数据库架构时最简单的做法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10981932/

相关文章:

c# - 在 Entity Framework 中保存新记录

ef-code-first - Entity Framework 代码优先迁移 - 启用迁移失败

c# - 尝试创建 ASP.NET MVC 4 Controller 时出现 FileNotFound 异常

c# - 如果我们使用具有代码优先方法的 Entity Framework ,是否可以在给定路径上创建数据库(Sql Server compact)?

c# - DbMigrator.GetPendingMigrations() 始终为空

c# - 使用 Entity Framework 将更改保存回数据库

entity-framework - Asp.Net Web API错误: The 'ObjectContent` 1' type failed to serialize the response body for content type ' application/xml; charset=utf-8'

c# - 夏普架构替代品

c# - Entity Framework 生成不同的sql查询

entity-framework - Entity Framework 代码优先 : Adding to Many to Many relationship by ID