Привет, ребята, я пытаюсь создать отображение TPH в иерархии, где разделяющим предложением является классический случай «IS NOT NULL» / «IS NULL».
Вот пример с базой данных:
CREATE TABLE info.EducationTypes
(
ID INT NOT NULL PRIMARY KEY,
Name NVARCHAR(64) NOT NULL,
FKParentID INT NULL REFERENCES info.EducationTypes(ID)
)
идея состоит в том, чтобы иметь иерархию классов, подобную следующей:
public abstract class EducationType
{
public int ID { get; set; }
public string Name { get; set; }
}
public class MainEducationType : EducationType
{
public IEnumerable<SubEducationType> SubTypes { get; set; }
}
public class SubEducationType : EducationType
{
public MainEducationType MainType { get; set; }
}
Я получил эту схему, «работающую» в классической модели xml, но я действительно не могу найти способ заставить ее работать, используя подход «сначала код». Это то, что я пробовал...
var educationType = modelBuilder.Entity<EducationType>();
educationType.Map<MainEducationType>(m => m.Requires("FKParentID").HasValue(null));
educationType.Map<SubEducationType>(m => m.Requires("FKParentID"));
У вас есть какие-либо предложения?