こんにちは、抽象基底クラスとその実装の間の親子関係で問題が発生しました
public class SuperParent
{
public ICollection<Parent> ParentList { get; set; }
}
public abstract class Parent
{
public int Id { get; set; }
public string Title { get; set; }
}
public abstract class ParentExtended : Parent
{
public ICollection<ChildClass> ChildClassList { get; set; }
}
public class RealClass : ParentExtended
{
}
public class ChildClass
{
public int Id { get; set; }
public Parent Parent { get; set; }
}
DBContext は次のようになります。
public DbSet<SuperParent> SuperParents { get; set; }
public DbSet<Parent> Parents { get; set; }
public DbSet<ChildClass> ChildClasses { get; set; }
サンプルコード
SuperParent sp = new SuperParent();
sp.ParentList = new List<Parent>();
RealClass parent = new RealClass();
parent.ChildClassList = new List<ChildClass>();
parent.ChildClassList.Add(new ChildClass());
sp.ParentList.Add(parent);
列を持つデータベース テーブル ChildClass の結果
- ID
- 親 ID (FK)
- ParentExtendedId(FK)
ここで、ParentId は常に null であり、parentExtendedId には正しい ID が入力されていますが、不要です。
私の質問はこれが進むべき道であり、どうすればchildclass ParentをParentExtendedではなく親として与えることができますか