3
我在asp.net mvc 3中有一個小項目,我使用RavenDB來存儲數據。 但是,當我試圖更新實體我有錯誤說 「試圖將不同的對象ID爲關聯的訂單/ 257'」 我有一個服務類家政實體。RavenDB與asp.net mvc更新問題
這是更新名爲Order的實體的方法。 心中已經省略清晰
public ErrorState UpdateOrder(Order order)
{
try
{
documentSession.Store(order);
documentSession.SaveChanges();
return new ErrorState { Success = true };
}
catch (Exception ex)
{
return new ErrorState { Success = false, ExceptionMessage = ex.Message };
}
}
的方法baceuse其餘這是OrderRepository
private readonly IDocumentSession documentSession;
public OrderRepository(IDocumentSession _documentSession)
{
documentSession = _documentSession;
}
ErrorState類是menagege錯誤的應用休息,它包含布爾成功和異常的字符串信息。
這是我的編輯操作。
public ActionResult Edit(int id)
{
Order order = orderRepository.ObtainOrder(id);
if (order == null)
{
TempData["message"] = string.Format("Order no: {0} not found", id);
return RedirectToAction("Index");
}
return View(order);
}
[HttpPost]
public ActionResult Edit(Order order)
{
if(!ModelState.IsValid)
return View();
errorState = orderRepository.UpdateOrder(order);
if (errorState.Success)
{
TempData["message"] = string.Format("Order no: {0} has been changed", order.Id);
return RedirectToAction("Index");
}
else
{
TempData["Message"] = string.Format("Error on update order no: {0} MSG: {1}", order.Id,errorState.ExceptionMessage);
return RedirectToAction("Index");
}
}
這是控制器的其餘部分,我忽略了清晰度的其他操作。
private readonly IOrderRepository orderRepository;
private ErrorState errorState;
public HomeController(IOrderRepository _orderRepository,IDocumentSession _documentSession)
{
orderRepository = _orderRepository;
}
感謝您的回覆。 – Konrad
是的,我有跨請求相同的會話,這意味着如果我重新調整應用程序數據庫包含我輸入的所有條目。 – Konrad
我的會話在請求範圍內 – Konrad