我创建了一个清单,添加到数据库中:
我从数据库中读取 - 列表是空的,其他一切都已到位:
模型
public class Checklist
{
public int Id { get; set; }
public List<Check> Checks { get; set; }
}
public class Check
{
public int Id { get; set; }
public string Value { get; set; }
}
控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,Checks")] Checklist checklist)
{
if (ModelState.IsValid)
{
db.Checklists.Add(checklist);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(checklist);
}
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Checklist checklist = db.Checklists.Find(id);
if (checklist == null)
{
return HttpNotFound();
}
return View(checklist);
}


问题是该方法
find(id)只加载所需的实体,而忽略相关实体。您需要通过加载链表include并通过以下方式过滤数据id或者您仍然可以使用 加载记录
find,然后,如果找到它,加载其余的:而且您还可以在商店中进行延迟加载。如果需要,第一次访问数据时将检索数据。