0

C#でEF 4とMVCを使用していますが、

アプリケーションがロードされたら、データベースに追加するエンティティをロード作成したいのですが、EFを使用してこの機能を追加するのに最適な場所はどこですか?Global.asaxアプリケーションの開始時に?

クラスの適切な命名規則は何ですか...BootStrap?

ありがとう

4

1 に答える 1

1

既存のデータベースがある場合は、アプリケーションに初期化を含めないでください。既存のデータベースでこれを機能させる唯一の方法は、で初期化を実行することApplication_Startです。初期化では、挿入するすべてのエンティティの存在を確認し、エンティティが存在しない場合にのみデータを挿入する必要があります。データベースはすでに存在するため、アプリケーションを再起動するたびに初期化ロジックを実行する必要があります。これを回避するには、データベースに初期化がすでに完了したことを示すフラグも必要です(挿入されたエンティティの1つは「フラグ」と見なすことができますが、アプリケーションがこのエンティティを削除できない場合に限ります)。

EFは通常、データベースの作成時またはデータベースの移行後にのみデータをシードします。

編集:テストデータベースにテストデータを作成している場合は、モデルが変更されるたびに(または移行によって)データベースを再作成し、カスタムデータベース初期化子を使用してデータをシードすることに満足する必要があります。

于 2012-08-14T09:37:15.523 に答える