我在课堂上有导航属性。它在数据库中有关联,但不返回来自员工信息导航属性类型的数据。
public class Visa
{
public int VisaID { get; set; }
public string VisaName { get; set; }
public Info EmployeeInfo { get; set; }
public List<Info> Employees { get; set; }
}
Info 类与 Visa 类有一对多的关系,也在数据库中。
public class Info
{
public int ID { get; set; }
public string Name { get; set; }
public string FatherName { get; set; }
}
鉴于:
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.VisaName)
</td>
@foreach (var employee in item.Employees)
{
<td>@Html.DisplayFor(empItem => employee.Name) </td>
<td>@Html.DisplayFor(empItem => employee.FatherName)</td>
}
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.VisaID }) |
@Html.ActionLink("Details", "Details", new { id=item.VisaID }) |
@Html.ActionLink("Delete", "Delete", new { id=item.VisaID })
</td>
</tr>
}
item.Employees为空。为什么?甚至表格中都有数据。
更新:
此外,这是行不通的。因此,总体而言,无论出于何种原因,员工都被空置返回。
InfoDBContext InfoContext = new InfoDBContext();
object o = InfoContext.Visas.ToList().Where(visa => visa.VisaName == "Visa 1").FirstOrDefault().Employees;
return View(o);
更新:
这也行不通。
public ActionResult VEmployees()
{
InfoDBContext InfoContext = new InfoDBContext();
//int EmployeeID = InfoContext.Infoes.ToList().Where(emp => emp.ID == 1).FirstOrDefault().ID;
object o = InfoContext.Visas.Include(e => e.Employees).Where(v => v.VisaName=="Hunain").FirstOrDefault().Employees;
return View(o);
}
两个实体都返回空