2017-03-22 9 views
1

私は、Entity Framework 6を​​使用してASP.NETアプリケーションを継承し、移行を有効にしました。私のGlobal.asaxでは、私はこれがあります。ASP.NETのMigrateDatabaseToLatestVersionのパフォーマンス

using (var context = new MyContext()) 
{ 
    Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, MyConfiguration>()); 
    context.Database.Initialize(true); 
} 

を問題は、私のアプリケーションは、(例えば、それをシャットダウンするため、IISに)起動する必要がありますたびに、このロジックは、ほとんどの場合にもかかわらず、実行されていることです実行するマイグレーションはありません。これにより、要求の処理が大幅に遅くなります。

ここには何がありますか?ベストプラクティスとは何ですか?これを無効にして、手動で移行を実行するためにPackage Manager Consoleを使用することもできますが、そのような目的に勝るものです(ただし、他のオプションがない場合は、これを行う準備ができています)。

+1

EFコアで自動移行が削除されました(ここではいくつかの[推論](http://www.bricelam.net/2014/12/16/ef7-migrations-designtime.html))ので、手動で移行を実行することです。 –

+0

@IvanStoevあなたが回答としてあなたのコメントを追加した場合、私はそれを正しい回答としてマークします。 – Peter

答えて

2

EF6の自動移行では、パフォーマンスだけでなく、いくつかの問題が発生するため、EFコアチームはEFコアから削除することを決めました(理由はhereです)。

EFコアはEF6の後継者(Entity Frameworkの将来)であるため、これを無効にして手動で移行することをお勧めします(ベストプラクティス)。

関連する問題