0

我想添加行到表使用asp.net mvc kendo ui。但這是第一次,這是成功的。當第二次執行時,調試指針將顯示「進程或線程自上一步以來已更改」,並嘗試添加第一個插入值。由於該表不允許重複主鍵,因此插入在第二次失敗。請指教。插入失敗時使用Asp.Net Mvc,Linq,實體框架

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Insert([DataSourceRequest] DataSourceRequest request, AdminHeaderImage batchModel) 
      { 
       if (ModelState.IsValid) 
       { 
        using (var Entity = new DealerEntities()) 
        {      
         Entity.AdminHeaderImages.AddObject(batchModel); 
         Entity.SaveChanges(); 
         return RedirectToAction("Index"); 
        } 
       } 
       else 
       { 
        return RedirectToAction("Index"); 
       } 
      } 

public ActionResult Index() 
     { 


      using (var Entity = new DealerEntities()) 
      { 
       var outPut = Entity.AdminHeaderImages.ToList(); 
       return View(outPut); 
      } 
     } 
+0

AdminHeaderImage究竟是什麼?它是如何定義的?你的表格是如何定義的?劍道與此無關。 –

+0

AdminHeaderImage只是我的數據庫中的一個表名。它僅包含一個主鍵和另一個列,並且此列不允許重複。插入是第一次。但第二次, 「進程或線程自上一步以來發生了更改」發生,並嘗試插入第一次的值。請幫助 –

+0

@MystereMan,你不能從上面的代碼中得到'Entity.AdminHeaderImages'的意思是object.entityname? –

回答

1

看起來你的實體對象是在請求之間共享的。

我建議每個Web請求都有一個實體對象。

本文介紹了更多

http://blogs.microsoft.co.il/blogs/gilf/archive/2010/05/18/how-to-manage-objectcontext-per-request-in-asp-net.aspx

+0

請告訴我如何重新編碼它爲每個Web請求實體對象。 –

+0

在每個請求中創建新實體時實體如何共享? –

+0

實體已添加到模型中。我的控制器被命名爲DefaultController。在索引上,其視圖強制鍵入模型中實體的一個表格。在這個視圖中,我有一個Kendo Grid,這些CRUD操作繼續進行。是的,這個視圖還有一個佈局頁面。請指教。 –

0

我只是用下面的代碼在插入結束這將刷新我的實體。返回Json(new [] {product} .ToDataSourceResult(request,ModelState));「回到頂端這篇文章中的信息適用於:

這解決了我的問題。