gpt4 book ai didi

asp.net-mvc - 带有继承的 MVC 5 脚手架使用了错误的实体集

转载 作者:行者123 更新时间:2023-12-02 10:57:03 25 4
gpt4 key购买 nike

在 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 生成 Controller 时,它使用 Persons 实体集,导致诸如这样的语句

    Student student = db.Persons.Find(id);

编译器显然提示它不能将任何 Person 转换为 Student。

有没有办法确保脚手架使用正确的实体集(在本例中为学生)?

请注意,删除 Persons 实体集并不是一个好的解决方案,因为还有其他 Controller 需要它。

最佳答案

使用查找和替换将父 DBSet 的 Controller 类中的所有匹配项更改为子 DBSet,例如将 Persons 更改为 Students。

正如您可能知道的那样(我认为您提出了这一点)Microsoft 已确认这是一个已知错误 http://connect.microsoft.com/VisualStudio/feedbackdetail/view/945937/mvc-5-scaffolding-with-inheritance-uses-the-wrong-entity-set但他们不会修复它。

关于asp.net-mvc - 带有继承的 MVC 5 脚手架使用了错误的实体集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25075655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com