私はMVCアプリケーションを数週間使用してモデルを変更し、再構築しています。最近、データアノテーションの最近の変更後、 Application_Startのglobal.asaxファイルで戦略をディスパッチすることはできません。MVC 3コード最初にEFモデルからデータベースを再生成しません
したがって、私は手動でSQL Expressからデータベースを削除しました。いいえ。私は、web.configファイル内の接続文字列を持っている
protected void Application_Start()
{
Models.cummins_sqldb c = new Models.cummins_sqldb();
c.Database.Initialize(true);
System.Data.Entity.Database.SetInitializer(new System.Data.Entity.CreateDatabaseIfNotExists<cummins_db.Models.cummins_sqldb>());
System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<cummins_db.Models.cummins_sqldb>());
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
:
は、ここに私のスタートアップコードです。
私は何を試してみるべきですか? をuはnullにすることはできません、すでにいくつかのDB 内のデータやテーブルへの外部キーを追加し、持っている:
モデルにはどのような変更が加えられていますか? – FrEaKmAn
基本的にいくつかのフィールド、いくつかのデータ注釈、およびナビゲーションプロパティーを追加しました – Ryan
これはかなり面倒なコードです。コンテキストタイプごとに1つのイニシャライザしか設定できないので、最初の 'SetInitializer'コールは冗長です。 'Database.Initialize'を呼び出すと初期化が実行されるので、この呼び出しの後にイニシャライザが設定されていれば、それも冗長です。とにかく、おそらくあなたの問題の原因ではないでしょう。 –