次のクラス階層があります。
public class RealPeople { }
public class Users : RealPeople { }
public class People : RealPeople { }
私のdbContextではRealPeople
、OnModelCreatingプロシージャのdbSetを定義し、PeopleとUsersに別々のテーブルを指定しました。
modelBuilder.Entity<Users>().ToTable("Users");
modelBuilder.Entity<People>().ToTable("People");
これにより、3つの対応するテーブルとともに、対応する完全な階層がDBに作成されます。Users
DB内のリストを取得したいときに問題が発生します。これ:
List = (from Reg in PersistentMgr.RealPeople select (Users)Reg)
.ToList();
またはこれ:
List = (from Reg in PersistentMgr.RealPeople select (Users)((RealPeople)Reg))
.ToList();
例外をスローします:
LINQは、プリミティブモデルタイプのみをキャストできます。
つまり、RealPeopleを対応するサブクラスUsersにキャストすることはできません。これについて何かアイデアはありますか?