2016-12-19 18 views
0

私はEntity Framework Code Firstを使用するC#WinFormsアプリケーションを作成しています。存在しない場合はデータベースを作成するように設定されています。Entity Frameworkは実行時にマイグレーションを適用します

このアプリはデータベースと一緒に配布されていないため、必要なときに作成されるため、新しいバージョンのアプリをリリースする際にどのケースに適用する必要があるかを検出する方法を見つける必要があります。

実行時に必要な移行を検出してどのように適用できますか?

+1

あなたが使用していること、[このSO QA?](http://stackoverflow.com/questions/35144784/how-to-use-migration-programmatically-in-entityframework-codefirst)特に[このリンクをチェックしていますDB Migrator](https://romiller.com/2012/02/09/running-scripting-migrations-from-code/)を参照してください。 [EF 6](https://github.com/aspnet/EntityFramework6/blob/master/src/EntityFramework/Migrations/DbMigrator.cs)でまだ利用可能ですので、あなたの質問に関連するかもしれません。 –

+0

これはそうです正確に私が探していたもの、ありがとう!! – hyperar

答えて

1

このイニシャライザを試してください:System.Data.Entity.MigrateDatabaseToLatestVersion、データベースを更新します(削除データベースなし、データ削除なし)。更新エンティティのみが変更されました。

Database.SetInitializer(new MigrateDatabaseToLatestVersion<T, DbMigrationsConfiguration<T>>()); 
     try 
     { 
      using (var ctx = new T()) 
      { 
       ctx.Database.Initialize(true); 
      } 
     } 
     catch (Exception e) 
     { 
     } 
+0

あなたが提案したもののバリエーションを使用しました。 'Database.SetInitializer ( 新しいMigrateDatabaseToLatestVersion ());' – hyperar

関連する問題