2010-12-10 58 views
5

我们正在C#中使用实体框架与SQL Server 2008一起构建应用程序。我们使用Visual Studio中的设计器设计模型并从中自动生成实体。使用实体框架处理数据库迁移

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

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

有没有更好的处理方法?如果我不必亲自编写alter table-scripts并编写自己的软件来升级数据库结构,那将会很好。

回答

0

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

0

Chech this post out。这是关于EF4的CTP4,但这是你需要的东西。

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

Unforunately这是尚未公布。 CTP5发布前几天,据我所知这还没有包括在内。

+0

很酷。但是,如果解决方案今天采用先进的模型,而不是未来的某个时间,那么它会更酷。 ;-) – Martin 2010-12-10 13:45:21

+0

我同意并且希望这个功能不会局限于代码优先,而是扩展到模型优先。我真的希望他们尽快发布。这可能更多的是供参考答案,然后是解决方案。希望有人真的知道任何这样的事情。 – gligoran 2010-12-10 13:48:47