TPH コード ファースト tmodel を作成し、必要な識別子列に NotMappedAttribute を追加しました。サブクラスのコンテキストに DbSet を追加し、これらの型付きセットによってクエリを実行できます。コード ファーストは今でも私の友人です。
ただし、それ自体が BaseType のコレクションを含むエンティティがあり、そのうちのいくつかはあるタイプであり、別のタイプであるとします。型指定されたレコードを取得するクエリを作成するにはどうすればよいですか? ちなみに、遅延ロードされたメモリ内コレクションではこれを行いたくありません。
Association という名前のクラスと、いくつかのサブクラス AssocA および AssocB があるとします。これらはすべて Associations テーブルにマップされ、AssocationTypeId で識別されます。ここでエンティティがあると仮定します - 引数のためにそれを Employee と呼びます。たとえば
class Employee
{
public virtual Collection<Associations> MyAssociations {get;set;}
}
データベースにクエリを実行して、AssocA = ? の従業員を検索します。関連付けを ? に等しくしたくないだけです。しかし、特定の型付けされた関連付け。LinqToEntities が動作しないため、GetType を使用できません。コード最初のマッピングで使用されるため、AttributeTypeId は使用できません。
私は何が欠けていますか?私がしていることは合理的です。しかし、私はそれをモデル化することはできません。