在您的问题中包含您的标题,我猜您在没有附加调试器的情况下(还)没有遇到问题。
正如其他人所评论的那样,这是由于LazyLoading
.
有时可能会出现此问题,因为在渲染View
实体容器时正在处理,很可能是因为它是由调用容器的析构函数的 GarbageCollector 收集的。
如果您希望访问您的实体,您View
可以Include
使用ObjectSet
. 假设MeetingPurposes
有一个关联EntitySet
的Dates
:如果您希望将它们包含在加载操作中,您可以执行以下操作:
db.MeetingPurposes.Include("Dates").ToList();
public ActionResult GetMeetingMR(int id = 0)
{
//Load the MeetingPurposes including their dates
var meetingPurpose = db.MeetingPurposes.Include("Dates").ToList();
ViewBag.MeetingPurpose = new SelectList(meetingPurpose,
"MeetingPurposeID",
"MeetingPurposeName");
ViewBag.MRID = id;
List<Meeting> meetings = (db.MortgageRequests.Find(id)).Meetings.ToList();
return View(meetings);
}
如果您希望这样做,Meetings
并且 Meetings 有你们中的一个EntitySet
人,Dates
可以这样做:
public ActionResult GetMeetingMR(int id = 0)
{
var meetingPurpose = db.MeetingPurposes.ToList();
ViewBag.MeetingPurpose = new SelectList(meetingPurpose,
"MeetingPurposeID",
"MeetingPurposeName");
ViewBag.MRID = id;
var meetings = (from mee in db.Meetings.Include("Dates")
join mga in dbo.MortgageRequests.Where(m => m.Id == id)
on mee.MortgageRequestID equals mga.ID
select mee).ToList();
return View(meetings);
}
不太确定您的Find
扩展方法是什么,所以我使用了Where
on MortgageRequests
.