2016-09-19 8 views
1

EFの移行をテストするための簡単なWeb APIプロジェクトを作成しました。私はPackage Manager ConsoleでAdd-Migration Initialを呼び、フォルダと共に初期移行が作成されました。今私は自分のプロジェクトを実行し、データベースを自動的に作成することを期待していました。しかし、それはログインエラーをスローしません。プロジェクトを実行するとEFコアマイグレーションが自動的に実行されますか?

私はUpdate-Databaseを呼び出してデータベースを作成しました。

コンテキストへのアクセス時に自動的にデータベースを作成するべきではありませんか?新しい移行ファイルを追加するとどうなりますか?スナップショットがデータベースと異なる場合(または移行テーブルを使用している場合)、自動的にデータベースを実行中に更新しますか?要約する

、質問は以下のとおりです。

  1. EFコアの移行は、自動的にアプリケーションの実行時にデータベースを作成することはできますか?

  2. EFコアマイグレーションでは、アプリケーションの実行時に差異が検出されたときに自動的にデータベースを更新できますか?

  3. 違いを比較するにはどうすればよいですか?実際のDB構造とスナップショット?

  4. 自動的に更新される場合、手動で移行を削除するとどうなりますか? DBのスナップショットと移行テーブルは同期していないでしょうか?何が起こるか?

  5. 実行時に自動的に作成/更新することができない場合、dbと変更をお客様にどのように配備しますか?あなたはそれを手動で行う必要があります。だから

答えて

0

EFコアがないサポートAutomatic Migrationsを行います。

機能として、自動移行の観点から、我々は経験をより管理的なアプローチであることをコードベース の移行を示しているようにEFコアでそれを実装するために 計画はありません。

あなたがここに全文を読むことができます:Not to implement Automatic Migrations

をあなたはStartup.csに自動的にマイグレーションを実行することができますPackage Manager Console (Visual Studio)

+0

[OK]をクリックします。必要に応じて、データベースの変更や更新を顧客に通常どのように展開しますか? –

+0

'web.config'で'接続文字列 'を' production one 'に変更し、 'package manger console'で以下のコマンドを実行するだけです。 'PM> Update-Database' – Sampath

+0

申し訳ありませんが、最後の質問です。パッケージマネージャコンソールを使用できるようにVSを顧客のコンピュータにインストールすることを意味しますか?それともVSなしで実行できますか? –

2

を使用してそれを行う方法を参照してください.NET Core CLI

を使用してそれを行う方法を見ることができます追加することによって:

var dbFactory = new DataContextFactory(); 
var dbContext = dbFactory.Create(new DbContextFactoryOptions()); 
dbContext.Database.Migrate(); 

DataContextFactoryは、IDbContextFactory<DataContext>を実装する工場です。

関連する問題