9

Visual Studio 2012、.NET 4.5、および Entity Framework 5.0 を使用して MVC 3.0 アプリケーションを作成しました。

Code First Data Migrations を使用して、モデルの変更をローカル テスト データベースに正しく伝達できますが、Web 配置を使用してステージング サーバーと運用サーバーに配置するときにこれを機能させる方法がわかりません。

以下の記事を読んだ...

http://msdn.microsoft.com/en-us/library/dd394698(v=vs.110)#dbdacfx

...これは何が起こるべきかを説明していますが、私がEntity Frameworkを使用していることをWeb Deployが検出できないように見えるため、私にとってはうまくいきません。このチュートリアルでは、Code First Migrations の実行を有効にするチェックボックスを示しています ...

Web 配置発行ダイアログ

...しかし、私のダイアログには、Update Database各データベースのチェックボックスのみが表示されます。

Visual Studio が Entity Framework コンテキストの使用を検出するには、Web.configそれを定義する要素を含める必要があることを読みました。これが私のものです:

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />

    <contexts>
        <context type="MyContext, MyAssembly">
            <databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[MyContext, MyAssembly], [MyConfig, MyAssembly]], EntityFramework">
                <parameters>
                    <parameter value="MyConnectionStringName"/>
                </parameters>
            </databaseInitializer>
        </context>
    </contexts>
</entityFramework>

どんな提案でも大歓迎です。

ありがとう、

ティム

4

2 に答える 2

3

私は実験を通じてこの問題の解決策を発見しました。

実際、私の MVC アプリケーションは、VS2010 ソリューションから変換して VS2012 によって作成されました。変換プロセスで問題が報告されなかったので、公開プロファイルを含むすべてが正しく変換されたと思いました。

しかし、問題はこれらのプロファイルの変換にあることがわかりました。XML ファイルを手動で編集しない限り、インポートされた古いプロファイルを Code First Migrations に参加させる方法はないようです。

変換されたソリューションで新しい発行プロファイルを作成するだけで、期待どおりの動作が得られます。

于 2012-09-22T15:00:25.243 に答える
0

これを試してください: Enable-Migrations -Force

以下が true AutomaticMigrationsEnabled = true に設定されていることを確認します。

再公開 - 私のために働いた

于 2014-01-23T13:01:46.810 に答える