2012-04-16 54 views
10

當首先使用代碼時,EF遷移實用程序看起來相當不錯。使用EF4遷移工具和模型優先方法

基於this blog post,我嘗試在我的項目中使用model-first。當運行Enable-Migrations命令,我收到以下錯誤:

Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel.

有周圍沒有任何辦法,所以我們可以使用EF遷移而無需切換到代碼優先?

+1

我猜不 - 這是例外說的,但它會是一個很好的建議[Data UserVoice](http://data.uservoice.com/forums/72025-entity-framework-feature-suggestions)。 – 2012-04-16 18:57:21

+0

對於博客鏈接+1 – 2013-02-20 03:36:15

回答

3

我有一個關於如何做到這一點的不完整博客條目。不確定它是否符合您的需求,但似乎是迄今爲止唯一可用的方法。

基本上,您使用自定義t4從您的模型生成DbMigrationsConfiguration和DbContext,並且您不需要運行Enable-Migration。只需在軟件包管理器控制檯中運行添加遷移和更新數據庫即可。

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

我會更新博客條目和T4,使其更加用戶友好的版本。

+0

有趣的是,我將在三週後重新開始工作,並確保檢查這一點,謝謝。 – Johnny5 2012-08-12 13:25:23

+0

我沒有把它應用到我的項目中,不確定它是否可以「開箱即用」,但它似乎是目前唯一的解決方案。 – Johnny5 2012-10-05 15:50:20

+0

我遇到同樣的問題。但Code Second插件不適用於EF 6 ......這怎麼解決? – Franva 2015-04-06 13:42:03