我有以下DeletePOST操作方法: -
[HttpPost]
public ActionResult Delete(int id)
{
try
{
var lb = repository.GetLabTest(id, false);
repository.DeleteLabTest(lb);
repository.Save();
return Json(new { IsSuccess = "True", id = id, description = lb.Description }, JsonRequestBehavior.AllowGet);
}
//code goes here....
当我编写代码时,我认为它将在description = lb.Description
上返回错误,因为我正在删除lb
对象,然后我正在检索其lb.Description
属性值在return Json
内。但是代码能够检索刚刚删除的对象的Description
值。那么这是怎么发生的呢?
BR
答案 0 :(得分:1)
IMO是因为你从数据库而不是内存中删除了对象,如果你这样做,那么该对象的副本仍然以var lb
的形式存在于mem中
repository.Save();
lb=null;
然后你的代码会抛出异常,可能是对象引用没有设置排序