У меня сейчас проблема с удалением объекта, ранее на этой неделе этот код был работает нормально, но теперь я получаю исключение с нулевой ссылкой, даже если объект, который я пытаюсь удалить, и экземпляр структуры сущности не являются нулевыми.
MHNHubEntities _entities = new MHNHubEntities();
// Get, GetList, Add, Save etc.
public void Delete(PackageProduct packageProduct)
{
_entities.PackageProducts.DeleteObject(packageProduct);
}
packageProduct является допустимым packageProduct, а все остальное, кроме этого удалить работает. Обычно я бы не спрашивал, как разрешить исключение нулевой ссылки - потому что это довольно очевидно, проверьте наличие нулей. Однако - в этом случае я в тупике, то, что работало вчера, внезапно перестает работать, и это вызывает исключение. Любая помощь будет принята с благодарностью, я уже подтвердил, что при возникновении этого исключения нет нулевых объектов.
edit
Я не хочу исключать, что что-то является нулевым и вызывает это - из-за самого характер создаваемого исключения. Согласно запросу, вот трассировка стека:
at MHNHub.Areas.Store.Controllers.SettingsController.DeletePackage(Int32 id, FormCollection collection) in C:\Users\Grahame\Desktop\Projects\MHN Hub\Visual Studio Project\MHNHub\MHNHub\Areas\Store\Controllers\SettingsController.cs:line 618
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
Вот мое действие контроллера:
[HttpGet]
public ActionResult DeletePackage(int id, FormCollection collection)
{
try
{
IPackageRepository packageRepository = new PackageRepository();
var package = packageRepository.GetPackage(id);
IPackageProductRepository packageProductRepository = new PackageProductRepository();
var packageProducts = package.PackageProducts.ToList();
foreach (var packageProduct in packageProducts)
{
packageProductRepository.Delete(packageProduct);
}
packageRepository.Delete(package);
packageRepository.Save();
return Json(new { Success = "true" }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
//return JSON with exception
var result = new { Message = ex.Message, InnerException = ex.InnerException.ToString() };
return Json(result, JsonRequestBehavior.AllowGet);
}
}