使用EF4迁移工具进行模型优先方法

10

使用 Code First 时,EF 迁移工具似乎非常好用。

根据这篇博客文章,我尝试在我们使用 Model First 的项目中设置它。但是在运行 Enable-Migrations 命令时,我遇到了以下错误:

不支持从使用 Database First 或 Model First 创建的 DbContext 创建 DbModelBuilder 或编写 EDMX。EDMX 只能从未使用现有的 DbCompiledModel 创建的 Code First DbContext 中获得。

是否有任何方法可以解决此问题,以便我们可以在不切换到 Code First 的情况下使用 EF 迁移?


1
我想不会出现这种情况 - 这就是异常所说的,但将其提供给[数据UserVoice](http://data.uservoice.com/forums/72025-entity-framework-feature-suggestions)是一个不错的建议。 - Ladislav Mrnka
2个回答

3

我曾寻找同样的解决方案并发现了这个:Entity Designer Database Generation Power Pack。安装后,当你选择“从模型生成数据库…”时,会弹出一个新向导,你可以选择“生成迁移T-SQL”。


3
我有一篇未完成的博客文章,介绍如何实现此功能。不确定它是否符合您的需求,但似乎这是目前唯一可用的方法。
基本上,您可以使用自定义t4从模型中生成DbMigrationsConfiguration和DbContext,而无需运行Enable-Migration命令。只需在包管理器控制台中运行Add-Migration和Update-Database命令即可。

http://blog.amusedia.com/2012/08/entity-framework-migration-with-model.html

我将在稍后更新博客条目和t4,使其更加用户友好。

有趣,我会在三周后回到工作岗位,并确保检查这个,谢谢。 - Johnny5
我还没有将这个应用到我的项目中,不确定它是否可以直接使用,但目前看来似乎是唯一的解决方案。 - Johnny5
我遇到了同样的问题。但是 Code Second 插件不能与 EF 6 兼容......这个问题怎么解决? - Franva

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接