控制器
public ActionResult Index(int? id)
{
var userEmail = User.Identity.Name;
var model = db.Staffs.Where(i => i.Email == userEmail).Include("Histories").Include("CurrentApplications").FirstOrDefault();
return View(model);
}
我遇到了var model = db.Staffs.Where(i => i.Email == userEmail).Include("Histories").Include("CurrentApplications").FirstOrDefault();
行的以下错误,但我不知道为什么会得到它。
错误
指定的包含路径无效。 EntityType 'StaffPortalDBModel.Staff'未声明导航属性 名称'历史'。
员工班级
public partial class Staff
{
public int StaffID { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public Nullable<decimal> AllocatedLeave { get; set; }
public Nullable<int> BalanceLeave { get; set; }
public virtual IEnumerable<History> Histories { get; set; }
public virtual IEnumerable<CurrentApplication> CurrentApplications { get; set; }
}
答案 0 :(得分:0)
我相信在定义Navigation属性时可能需要使用ICollection而不是IEnumerable。这可能是个问题。
我还建议(假设您的Entity Framework版本足够高,以支持它)使用强类型包含,这样如果您在Staff.cs中更改属性,您将收到编译时错误。
即:.Include(s =&gt; s.Histories)