4

私は EF Code First 5 で MVC 4 を使用しています。私は少し新しいので、既定のテンプレートからプロジェクトを作成しています。

プロジェクトはデータベースと対話しており、レコードは保持されています。仕事で DropCreateDatabaseIfModelChanges を使用していますが、デフォルトのテンプレート プロジェクトで動作させようとしています。テンプレート プロジェクトの SimpleMembershipInitializer で SetInitializer 呼び出しを見つけ、これを使用しようとしました。

            Database.SetInitializer<NPContext>(new DropCreateDatabaseIfModelChanges<NPContext>());

それ以外の

            Database.SetInitializer<NPContext>(null);

機能していません。情報は引き続きデータベースに保持されますが、削除されず、新しいスキーマで再作成されません。また、Application_Start() で初期化子を設定しようとしました。デバッグ モードでは、クラッシュや目に見えるエラーは発生しません。

私は自分が使用しているツールの設定にあまり慣れていません.データベースのアクセス許可を設定するために釣りを試みました(SQLEXPRESSを使用していますが、SQL Management Studio 2012を使用しています)が、ユーザーが何をするかわかりませんでした.または設定する権限。

誰かが私を正しい方向に導くことができますか? この時点で私は車輪を回転させ、時間を無駄にしています。

4

1 に答える 1

0

を使用してアプリケーションでこれを行う方法を次に示しますApplication_Start()。まず、データベースの再作成時にデータベースのシード処理を行う初期化クラスがあります。

public class MyContextInitializer : DropCreateDatabaseIfModelChanges<MyContext>
{
    // Seed your database or anything else you want to do
}

次に、Application_Start()イニシャライザを設定します。

Database.SetInitializer(new MyContextInitializer());
于 2012-12-02T00:13:07.050 に答える