0

今日、私は自分のデータベース モデルに変更を加えていました。コンパイルせずに、2時間ほど修正していました。

だから、私は私のアプリケーションにこれを持っています:

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

そして通常、モデルに変更を加えていたときは、これを行うだけで十分でした:

var tmp = new MyDb();
tmp.Categories.Any();

そして、モデルは自分自身を再作成していました。しかし、今、モデルを変更した後、エラーが発生しました:

オブジェクト参照がオブジェクト インスタンスに設定されていません。

MyDb() を呼び出しているため、このインスタンスが設定されているため、それが何を意味するのかまったくわかりません。ここで何が起こっているのですか?何が間違っているかを確認するにはどうすればよいですか?

編集:私が今発見したことは、データベースを再作成しようとさえしていないということです。私はこれを設定しました:

 public class MyDatabaseInitializer : DropCreateDatabaseIfModelChanges<ScykDb>
    {
        protected override void Seed(ScykDb context)
        {
            base.Seed(context);
            (code...)
         }
     }

私のapplication_startに:

Database.SetInitializer(new MyDatabaseInitializer());

そして、私はこのメソッドにブレークポイントを入れましたが、ヒットしていません!

4

2 に答える 2

4

私はこれに遭遇したばかりで、以前はありませんでした。自分が何をしているのかを理解するまで、それは私を夢中にさせました。別のモデルへのリストを持つモデルがある場合は、モデルのコンストラクターでリストを初期化するようにしてください。

于 2013-07-24T03:53:32.283 に答える
1

わかった。ここに入るすべての人にとって、解決策は次のとおりです。

それがどのように機能するのかわかりませんが、すべての [ForeignKey] 属性と流暢な API 構成をすべてコメントアウトしました。その後、プロジェクトを開始し、流暢な API のみを使用してスローしていたエラーを修正しました。これは役に立ちました。現在、すべて正常に動作しています。

于 2013-02-11T20:16:31.780 に答える