エンティティをサブクラス化し、サブクラスのインスタンスを Context の DbSet コレクションに追加すると、次のエラーが発生しますMapping and metadata information could not be found for EntityType 'Namespace_Name.SubClass_Entity_Name'
。
詳細:
コンテキスト クラスにはプロパティ DbSet があります。
異なるアセンブリにいくつかのエンティティがあり、
- BaseClass (Assembly1 に属する BaseClass)
- DerivedClass : BaseClass (Assembly2 に属する DerivedClass)
実行時に派生クラスのインスタンスをコンテキストに追加すると、上記の例外が発生します。
注: DerivedClass が BaseClass と同じアセンブリに属していた場合、この例外は発生しません。
質問:
サブクラスが別のアセンブリに属しているという理由だけで、この問題が発生するのはなぜですか?
同じアセンブリに属するサブクラスでこの問題に直面しないのはなぜですか?
アップデート:
OnModelCreating メソッドをオーバーライドし、次のように DerivedClass を登録する修正を見つけましたmodelBuilder.Entity< DerivedClass>();
。