【问题标题】:Handling database migrations when using Entity Framework使用实体框架时处理数据库迁移
【发布时间】:2010-12-10 13:09:50
【问题描述】:

我们正在用 C# 构建一个应用程序,它使用带有 SQL Server 2008 的实体框架。我们使用 Visual Studio 中的设计器设计模型,并从中自动生成实体。

我们正在开发 1.0 版。当我们发布 2.0 时,我们需要对模型和底层数据库结构进行更改。我想我们需要所谓的“数据库迁移”。

传统上,我在数据库中有一个名为“版本”之类的表。每当我创建软件的新版本时,我都会创建包含 ALTER TABLE 语句的数据库升级脚本。我的软件已检查版本表并运行将数据库升级到“软件版本”所需的升级脚本。

有没有更好的方法来处理这个问题?如果我不必自己编写 alter table-scripts 并编写自己的软件来升级数据库结构,那就太好了。

【问题讨论】:

    标签: sql c#-4.0 entity-framework-4


    【解决方案1】:

    当我首先做模型时,我曾经将我的模型指向一个纯粹用于架构的数据库(所以我有一个 myapp 数据库,这是我的应用程序运行的地方,但我的 EF4 模型被输出到一个myapp_schema 数据库)。当 myapp_schema 更新时,我使用Db Source Tools 生成更新脚本,并使 myapp 的数据库架构与 myapp_schema 相同。

    【讨论】:

      【解决方案2】:

      查看这篇文章。它是关于 EF4 的 CTP4,但这正是您所需要的。

      http://blogs.msdn.com/b/efdesign/archive/2010/10/22/code-first-database-evolution-aka-migrations.aspx

      很遗憾,目前尚不可用。 CTP5 是几天前发布的,据我所知还没有。

      【讨论】:

      • 酷。但是,如果该解决方案在今天使用模型优先的方法,而不是将来某个时候使用代码优先的方法,那就更酷了。 ;-)
      • 我同意并且我希望这将功能不仅限于代码优先,而是扩展到模型优先。我真的希望他们尽快发布它。这可能更像是一个仅供参考的答案,而不是一个解决方案。希望有人真正了解此类当前的任何事情。
      猜你喜欢
      • 1970-01-01
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      • 1970-01-01
      相关资源
      最近更新 更多