小编Pie*_*ica的帖子

MVC 5带继承的脚手架使用错误的实体集

使用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实体集不是一个好的解决方案,因为还有其他控制器需要它.

asp.net-mvc entity-framework dbcontext asp.net-mvc-5 entity-framework-6.1

5
推荐指数
1
解决办法
532
查看次数