2016-09-10 1 views
0

SQL Serverデータベースに10個の列を持つ2つのテーブルがあるため、VSウィザードを使用せずに手作業で自分のPOCOクラスを作成したり、必要に応じて更新したりするのは簡単です。私はアップデートのための移行を避けることができるようにしたいと思います。これは簡単なプロジェクトですが、GoogleやSOを使って例を見つけることはできません。Entity Frameworkのコードを既存のデータベースと最初に使用して移行を回避するにはどうすればよいですか?

これを行った人はいますか?あるいは、誰かが既存の例を知っていますか?

私はEntity Framework 6、VS 2015 Communityを使用しています。

多くの感謝!

答えて

0

モデル検査(移行)を無効にするに

System.Data.Entity.Database.SetInitializer<YourContext>(null); 

EDIT

この文では、データベースが既に(あなたの場合のように)存在している必要がありますので、あなたは、データベースの初期化を無効にします。異なるイニシャライザを選択できます(コードのデフォルトはCreateDatabaseIfNotExistsです)。

この[静的]ステートメントは、コンテキストを使用する前に使用できます。 私のアプリケーション(私は標準的な移行を使用しません)では、この文をコンテキストの静的コンストラクタに挿入します。

class YourContext:DbContext 
{ 
    static YourContext() 
    { 
     System.Data.Entity.Database.SetInitializer<YourContext>(null); 
    } 

    // 
    // DbSets 
    // 

    // Model configurations 
} 
+0

ありがとうございます。私はこれをGoogle検索し、私が見つけたものは主にコードの最初の開発データベースに関連しており、移行を防ぐためにどのように動作するかを議論するものは何も見つかりませんでした。あなたはそれについてちょっと詳しく説明できますか?ありがとう。 – JaneH

+0

私は答えを更新しました。私はあなたのニーズを理解していますように。いくつかの文書を見ることができます。移行、自動移行またはコード移行(パケットマネージャコンソールを使用して足場を動かすことができる)はできないと考えてください。自動移行またはコードの移行がある場合は、構成を指定することもできます(たとえば、データの損失が許可されているかどうかを指定するなど) – bubi

+0

ありがとうございます。モデルと対応する列をエラーなしで変更できるようになりました。 – JaneH

関連する問題