TPC 継承を使用して、複雑なオブジェクト モデルを既存のデータベースにマップしています。継承構造の中間レベルでリレーションシップを作成すると、問題が発生します。
public class ParentClass
{
}
public class MiddleClass : ParentClass
{
public Int64 RelationshipId;
public Relationship Relationship;
}
public class ChildClass1 : MiddleClass
{
}
public class ChildClass2: MiddleClass
{
}
public class Relationship
{
public string RelationshipInfo { get; set; }
}
public class MyEntities : DbContext
{
public DbSet<ParentClass> Parents
public override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<ChildClass1>.Map(m => m.MapInheritedProperties);
modelBuilder.Entity<ChildClass2>.Map(m => m.MapInheritedProperties);
modelBuilder.Entity<MiddleClass>.HasRequired(mc => mc.Relationship).WithMany().HasForeignKey(mc => mc.RelationshipId);
}
}
行を追加するまで、私のモデルは機能しmodelBuilder.Entity<MiddleClass>.HasRequired(mc => mc.Relationship).WithMany().HasForeignKey(mc => mc.RelationshipId);
ます。この関係をすべての子供にマッピングする必要がありますか?
私が受け取ったエラーは、「型 "MiddleClass" は、エンティティ分割または別の形式の継承を使用する型から継承されたプロパティをマップするため、定義されたとおりにマップできません」です。