В MVC 5 и EF 6.1 я использую простую иерархию наследования, в которой класс Student наследуется от класса Person. Для обоих классов у меня есть набор сущностей (свойство DbSet) в контексте моей базы данных:
public class DatabaseContext : DbContext
{
public DbSet<Person> Persons { get; set; }
public DbSet<Student> Students { get; set; }
}
Теперь, когда я прошу скаффолдер сгенерировать контроллер для подкласса Student, он использует набор сущностей Persons, что приводит к таким утверждениям, как
Student student = db.Persons.Find(id);
где компилятор явно жалуется, что не может просто преобразовать любого человека в студента.
Есть ли способ убедиться, что скаффолдер использует правильный набор сущностей (в данном случае «Студенты»)?
Обратите внимание, что удаление набора сущностей Persons не является хорошим решением, потому что это необходимо другим контроллерам.