9

Visual Studio 2012、.NET 4.5およびEntity Framework 5.0を使用してMVC 3.0アプリケーションを作成しました。エンティティフレームワークコードVS2012 Webデプロイメントで動作しないデータ移行

コードの最初のデータ移行を使用すると、モデルの変更をローカルのテストデータベースに正しく伝播できますが、Web Deployを使用してステージングサーバーと運用サーバーに展開するときに、これを動作させる方法がわかりません。

私はWeb配置は、私が使用していることを検出することができないようだと、起こることになっているものについて説明したが、それは私のために働いていないた... ...

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

を次の記事を読みましたエンティティフレームワーク。チュートリアルでは、コードファーストの移行...

Web Deploy Publish Dialog

の実行を有効にする]チェックボックスを示しています...が、私のダイアログには、各データベースのための唯一の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> 

すべての提案をいただければ幸いです。

おかげで、

ティム

答えて

3

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

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

ただし、これらのプロファイルの変換に問題があり、手動でXMLファイルを編集しない限り、古いインポートプロファイルをコード初回移行に参加させる方法がないことが明らかになりました。

変換されたソリューションで新しいパブリッシングプロファイルを作成するだけで、正常に動作します。

+1

違いの概要を教えてください。 –

+1

@リチャード:内に新しく作成されたプロファイルには、複数の追加の要素が含まれています。各要素はコンテキストクラスを表します。 VS2012ソリューション変換の一部として実行されない、Web展開が初めて実行されるときに実行される何らかの種類の検出プロセスがあると仮定します。 –

0

これを試してみてください: 有効-移行-Force

以下の真真 AutomaticMigrationsEnabled =に設定されていることを確認。

再発行 - 私のために働いた

関連する問題