Pie*_*ica 5 asp.net-mvc entity-framework dbcontext asp.net-mvc-5 entity-framework-6.1
使用MVC 5和EF 6.1,我使用的是简单的继承层次结构,其中类继承自Person类.对于这两个类,我在我的数据库上下文中有一个实体集(DbSet属性):
public class DatabaseContext : DbContext
{
public DbSet<Person> Persons { get; set; }
public DbSet<Student> Students { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在,当我要求脚手架为Student,子类生成一个控制器时,它使用Persons实体集,导致如下的语句
Student student = db.Persons.Find(id);
Run Code Online (Sandbox Code Playgroud)
编译器显然抱怨它不能只将任何人转换为学生.
有没有办法确保脚手架使用正确的实体集(在这种情况下是学生)?
请注意,删除Persons实体集不是一个好的解决方案,因为还有其他控制器需要它.
小智 1
为什么不使用关系使 personID 作为外键而不是继承?这就是为什么你可以 db.students.find(personID) 和 db.person.find(personID)
要查找所有详细信息?额外的代码,但我想不出其他方法