У меня есть следующие модели (чрезмерно упрощенные)Entity Framework Code First Table-Per-Type Наследование включает базовый тип
public class Training
{
public string Name { get; set; }
public IList<Person> Persons { get; set; }
}
public abstract class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Training Training { get; set; }
}
[Table("Students")]
public class Student : Person
{
public string StudentNumber { get; set; }
public IList<Training> Trainings { get; set; }
}
[Table("Instructors")]
public class Instructor : Person
{
public DateTime StartingDate { get; set; }
public IList<Training> Trainings { get; set; }
}
Я хотел бы запросить базу данных, используя имя обучения:
var training = _trainingRepository.FindByName("training class 1", include => include.Persons);
Это запрашивает базу данных и включает всех учеников и инструкторов.
Вопрос:
Скажем, у меня есть человек, который не является ни студент или преподаватель, но он является частью «учебного класса 1». Я хотел бы знать, можно ли также получить указанное лицо в списке лиц, и если да, то как?
Update
Реальная причина, почему я задаю этот вопрос, потому что у меня есть 39 отчетливый производный класс и запрос построен Ер действительно медленно по очевидным причинам. Я пытаюсь получить с первоначальным запросом только несколько наиболее распространенных случаев и, если необходимо, получить другие случаи отдельно с помощью IN
(EF Contains) с использованием базового класса.
Ответ
Ответ был удалить "абстрактный" ключевое слово из класса Base (Person).
любую причину downvote ? это кажется мне совершенно правильным вопросом –