Как определить одно свойство списка, которое сопоставляется нескольким единицам с общим супертипом в ядре fluent ef?

#c# #entity-framework #asp.net-core #entity-relationship #fluent

#c# #entity-framework #asp.net-core #сущность-отношение #свободно

Вопрос:

Сначала у меня есть базовый класс, подобный этому:

 public class BaseModel
{
      public string Information { get; set; }
}
  

Тогда у меня есть два подкласса базового класса:

 public class SubType1 : BaseModel
{
    public int Id { get; set; }

    public int TestData1 { get; set; }

    public int ParentId { get; set; }

    public virtual Parent Parent { get; set; }
}


public class SubType2: BaseModel
{
    public int Id { get; set; }

    public string TestData2 { get; set; }

    public int ParentId { get; set; }

    public virtual Parent Parent { get; set; }
}
  

Тогда у меня есть родительский класс, у которого есть список базового класса:

 public class Parent
{
    public int Id { get; set; }

    public virtual List<BaseModel> Components { get; set; } = new List<BaseModel>();
}
  

Родительский объект имеет много подтипов 1, а затем также много подтипов 2

У каждого подтипа 1 и подтипа 2 есть своя таблица

Что я мог бы добавить, чтобы список компонентов в родительском объекте автоматически возвращал все объекты из таблиц SubType1 и SubType2?

Ключевое требование: должно быть свободно

Комментарии:

1. Используете ли вы Entity-Framework или Entity-Framework Core? Согласно вашему описанию, кажется, что вы используете таблицу для каждого конкретного типа (TPC) , верно? Насколько я знаю, в ядре EF шаблон TPC в настоящее время находится в бэклоге , что означает, что он рассматривается для включения в качестве функции, но дата еще не установлена.

2. @ZhiLv Да, это именно то, что я ищу, если вы хотите опубликовать ответ, я его приму.

Ответ №1:

Согласно вашему описанию, кажется, что вы используете таблицу для каждого конкретного типа (TPC), верно?

Насколько я знаю, в ядре EF шаблон TPC в настоящее время находится в бэклоге, что означает, что он рассматривается для включения в качестве функции, но дата еще не установлена.