MVC4实体框架 - 无法隐式转换

Mar*_*tín 2 c# asp.net-mvc entity-framework visual-studio asp.net-mvc-4

我使用模型中的Entity Framework 5创建了一个数据库.这个模型有一个名为'Person'的表,另一个叫做'Administrator'.'管理员'继承自'人'.

  • '人'有一个Id和一个名字.
  • "管理员"有代码.

在为"管理员"创建新的Controller时使用MVC4.当我自动创建控制器和视图时,这是错误:

错误2 - 无法在"Model.Administrator"中隐式转换类型"Model.Person".存在显式转换(您是否错过了演员?).

错误代码(在ASTERISKS之间):

public ActionResult Details(int id = 0)
    {
        **Administrator admin = db.Person.Single(u => u.Id == id);**
        if (admin == null)
        {
            return HttpNotFound();
        }
        return View(admin);
    }
Run Code Online (Sandbox Code Playgroud)

小智 5

Administrator a = db.Person.OfType<Administrator>().Single(u => u.Id == id);
Run Code Online (Sandbox Code Playgroud)

使用OfType<>()仅返回可以强制转换为该类型的对象的filter方法.或者显式地转换对象.

Administrator a = db.Person.Single(u => u.Id == id) as Administrator;
Run Code Online (Sandbox Code Playgroud)

这两种解决方案都可行.