Mar*_*tín 2 c# asp.net-mvc entity-framework visual-studio asp.net-mvc-4
我使用模型中的Entity Framework 5创建了一个数据库.这个模型有一个名为'Person'的表,另一个叫做'Administrator'.'管理员'继承自'人'.
在为"管理员"创建新的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)
这两种解决方案都可行.