テーブルに列を追加した後のDbContextのエラー(ASP.NET / EEFコア)

asp.net-core entity-framework-core model

質問

テーブルに新しい列を追加するまでは、すべて正常に動作していました。私はモデルクラスを更新する方法を見つけることができませんでしたので、モデルに列を追加しました。しかし今、私のアプリケーションを実行すると、私はエラーが発生します: "オブジェクト参照がオブジェクトのインスタンスに設定されていません。"

デバッグ中に、私はdbcontextのインスタンスの作成に問題があることを発見しました:

MyDbContext context = new MyDbContext(db);

コンテキストオブジェクトは、テーブルからローをフェッチしておらず、このオブジェクト参照エラーを出しています。

モデルクラスから新しい列を削除すると、正常に動作します。これは、私のデータベースとモデルが同期していないことを示し、アプリケーションが古いテーブルデザインを使用しているようです。

また、CLIコマンドを使用してデータベースを更新しようとしていますが、それにも問題があります。

誰もがテーブルの列が追加されたら、どのようにモデルクラスとテーブルのデザインを同期化する方法を提案できますか?私はASP.NET CoreとEF Coreを使用しています。

ありがとうございました。

人気のある回答

正確な問題を見つけるためにtry catchを実行してください。

この問題は、データベースのスキーマとコードレベルのスキーマが変更されたために発生します。この行を追加する必要があります。

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

データベースを同期させます。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ