【发布时间】:2016-04-24 01:38:44
【问题描述】:
不确定发生了什么,但我在尝试在我的网络应用程序中调出任何视图时遇到以下错误。该代码是由 Visual Studio 自动生成的,在构建之前我没有收到任何错误。使用 ASP.Net MVC 6、EF7。
EntityFramework.Core.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理
附加信息:实体类型“Microsoft.AspNet.Mvc.Rendering.SelectListGroup”需要定义一个键。
这是代码出错的那一行。
public IActionResult Index()
{
var schoolContext = _context.Schools
.Include(s => s.District)
.Include(s => s.Location)
.Include(s => s.Tier);
return View(schoolContext.ToList());
}
经过一番搜索,我无法确切地知道我需要修复什么。这曾一度奏效。不知道发生了什么变化。
视图确实有定义
@model IEnumerable<School>
这里要求的是学校模型
public class School
{
//Original Fields
public int SchoolId { get; set; }
[Display(Name = "Name")]
public string SchoolName { get; set; }
[Display(Name = "Date Added")]
public DateTime SchoolDateAdded { get; set; }
[Display(Name = "Last Update")]
public DateTime SchoolLastUpdate { get; set; }
[Display(Name="Updated By")]
public string SchoolUpdatedBy { get; set; }
//Referance Fields
public int DistrictId { get; set; }
public IEnumerable<SelectListItem> DistrictList { get; set; }
public int LocationId { get; set; }
public IEnumerable<SelectListItem> LocationList { get; set; }
public int TierId { get; set; }
public IEnumerable<SelectListItem> TierList { get; set; }
//Navigation Property
public District District { get; set; }
public Location Location { get; set; }
public Tier Tier { get; set; }
}
【问题讨论】:
-
大胆猜测,但您的某个实体可能没有定义 PK?
-
Define
@model首先在你的视图中输入。 -
我补充说我确实在视图中定义了模型,并且每个数据库表都有一个 id 字段。
-
只是为了麻烦,请尝试删除您的
Includes(),看看会发生什么。 -
删除包含仍然会在返回语句而不是定义语句上引发相同的错误
标签: c# asp.net-mvc entity-framework asp.net-core-mvc entity-framework-core