使用Asp.Net Mvc,Linq,Entity Framework时插入失败

时间:2013-06-22 16:09:51

标签: asp.net-mvc-4 linq-to-sql kendo-ui kendo-grid kendo-asp.net-mvc

我正在尝试使用asp.net mvc kendo ui向表添加行。但这是第一次成功。当第二次执行时,调试指针显示“自上一步以来进程或线程已更改”并尝试添加第一个插入值。由于该表不允许复制主键,因此第二次插入失败。请建议。

[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);
            }
        }

2 个答案:

答案 0 :(得分:1)

您的Entity对象似乎在请求之间共享。

我建议每个网络请求都有一个实体对象。

本文解释更多

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

答案 1 :(得分:0)

我刚刚在Insert的末尾使用了以下代码来刷新我的实体。

“返回Json(new [] {product} .ToDataSourceResult(request,ModelState));”

这解决了我的问题。