15

EF でコード ファースト機能を無効にする方法 (Visual Studio 2012)

Visual Studio 2012、MVC4 (インターネット アプリケーション テンプレート) を使用しています。

EF を使用したいのですが、コード ファースト機能を使用したくありません。コードに基づいてデータベースを作成または変更するのではなく、アプリケーションでエラーが発生するようにしたいと考えています。(自分のデータベースが舞台裏で変更されているというこの感覚には耐えられません...作成した正確なデータベースをアプリケーションで使用したい...変更する必要がある場合は、自分でやる)

これは新しい Ef (VS2012) で可能ですか?

多くの人がこれを尋ねるのを見てきましたが、これまでのところ答えを見つけることができません.

4

1 に答える 1

23

nullCode First を使用して、データベース初期化子を次のように設定することで、モデルを変更したときにデータベースが更新または上書きされないようにすることができます。

Database.SetInitializer<MyDbContext>(null);

これはクラスの静的メソッドでありDatabase、アプリケーションの開始時に呼び出される必要があります。たとえば、global.asax またはコンテキスト クラスの静的コンストラクターで呼び出されます。これを行うには、モデル クラスとデータベース スキーマを手動で変更して一致させる必要があります。

リバース エンジニアリング機能を使用して、既存のデータベースから Code First モデルを作成することもできます。ここで説明されています:http://msdn.microsoft.com/en-us/data/jj200620

または、Code First をまったく使用せず、モデル デザイナーと連携する場合は、ここで説明されている Database First アプローチを使用できます: http://msdn.microsoft.com/en-us/data/jj206878

可能なすべてのオプションの概要は、http: //msdn.microsoft.com/en-us/data/ee712907.aspxにあります。

于 2013-02-02T15:01:29.567 に答える