ホームページ >バックエンド開発 >C++ >Entity Framework コードで「エンティティ タイプは現在のコンテキストのモデルの一部ではありません」というメッセージが表示されるのはなぜですか?

Entity Framework コードで「エンティティ タイプは現在のコンテキストのモデルの一部ではありません」というメッセージが表示されるのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-01 06:18:36371ブラウズ

Why Does My Entity Framework Code Throw

Entity Framework のエンティティ マッピング エラーについて

コードファーストの Entity Framework アプローチでは、「エンティティ タイプが正しくありません」というエラーが発生しました。現在のコンテキストのモデルの一部です。」これは、アクセスまたは変更しようとしているエンティティが DbContext によって認識されていないことを示します。

エンティティ マッピングの役割

コードファーストでは、EF は次のように推論します。ドメインクラスからのエンティティとマッピング。ただし、特にエンティティ名またはテーブル名が異なる場合には、明示的なマッピングが必要になる場合があります。カスタム DbContext クラスの OnModelCreating メソッドを使用すると、このマッピングを定義できます。

Entity のカスタム マッピング

問題を解決するには、次のコードを OnModelCreating メソッドに追加します。 DbContext:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Estate>().ToTable("Estate");
}

これは、EF に、不動産エンティティを「不動産」テーブルに追加します。このテーブルがデータベースにすでに存在していること、または移行が有効になっていることを確認してください。

追加のヒント

  • 個別のマッピング構成: の代わりにDbContext でマッピングを定義すると、個別の EntityTypeConfiguration クラスを作成して特定のマッピングを管理できます。 entities.
  • データベースの初期化: テーブルが自動的に作成されない場合は、データベースの初期化を有効にするか、手動でテーブルを作成する必要がある場合があります。
  • 自動移行: 自動移行を有効にして、モデルの変更に基づいてデータベース スキーマを自動的に更新します。

以上がEntity Framework コードで「エンティティ タイプは現在のコンテキストのモデルの一部ではありません」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。