Привет! Я столкнулся с проблемой отношений между родителями и детьми между абстрактными базовыми классами и их реализациями
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
- Парентид (ФК)
- ParentExtendedId (FK)
где ParentId всегда равен NULL, parentExtendedId заполнен с правильным Id, но нежелательным.
У меня такой вопрос, как это сделать, и как я могу предоставить childclass Parent в качестве родителя, а не ParentExtended