我的存储库类中有以下方法,用于检索Session
对象和关联的对象Medicine object
(通过使用 定义 Eager 加载.Include
),如下所示:-
public Session GetSession(int id)
{
return entities.Sessions.Include(d => d.Medicine).FirstOrDefault(d => d.SessionID == id);
}
我调用上述存储库方法的操作方法如下所示:-
[HttpPost]
public ActionResult Delete(int id)
{
try
{
//string desc;
var s = repository.GetSession(id);
repository.DeleteSession(s);
repository.Save();
return Json(new { IsSuccess = "True", id = s.SessionID, description = s.Medicine.Name }, JsonRequestBehavior.AllowGet);
}
catch (ArgumentNullException)
//code goes here
我面临的问题是,在使用物理删除对象后 repository.Save();
,我将无法Medicine navigation property
从内存中访问,并且将引发以下异常NullReferenceException 未被用户代码处理description = s.Medicine.Name
,而我可以访问s.SessionID
可用的即使在删除对象之后在内存中,这是否意味着Session
被删除的对象没有Include
(没有急切加载)Medicine
导航属性!!!?BR