Asp.net mvc 4 使用Asp.Net Mvc、Linq、实体框架时插入失败
我正在尝试使用asp.net mvc剑道ui将行添加到表中。但这是第一次成功。第二次执行时,调试指针显示“自上一步以来进程或线程已更改”,并尝试添加第一个插入值。由于表不允许复制主键,因此第二次插入失败。请告诉我Asp.net mvc 4 使用Asp.Net Mvc、Linq、实体框架时插入失败,asp.net-mvc-4,linq-to-sql,kendo-ui,kendo-grid,kendo-asp.net-mvc,Asp.net Mvc 4,Linq To Sql,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我正在尝试使用asp.net mvc剑道ui将行添加到表中。但这是第一次成功。第二次执行时,调试指针显示“自上一步以来进程或线程已更改”,并尝试添加第一个插入值。由于表不允许复制主键,因此第二次插入失败。请告诉我 [AcceptVerbs(HttpVerbs.Post)] public ActionResult Insert([DataSourceRequest] DataSourceRequest request, AdminHeaderImage batchModel)
[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);
}
}
您的实体对象似乎在请求之间共享 我建议每个web请求都有一个实体对象 这篇文章解释了更多
我只是在Insert的末尾使用了下面的代码,它将刷新我的实体 返回Json(new[]{product}.ToDataSourceResult(请求,模型状态))
这就解决了我的问题。什么是AdminHeaderImage?它是如何定义的?您的表是如何定义的?Kendo与此无关。AdminHeaderImage只是我数据库中的一个表名。它只包含一个主键和另一列,此列不允许重复。第一次插入是可以的。但在第二次执行时,“进程或线程自上一步以来已更改”,并尝试插入第一次值。请help@MystereMan,你不能从上面的代码中得到
Entity.AdminHeaderImages
表示object.entityname吗?@DotNetDreamer-我不知道你所说的object.entityname是什么意思,我在问它是如何定义的。请建议我如何重新编码它,以便每个web请求都有实体对象。在每个请求中创建新实体时,实体究竟是如何共享的?实体被添加到模型中。我的控制器名为DefaultController。在索引上,它的视图是强类型的,其中一个表来自模型中的实体。在这个视图中,我有一个剑道网格,这些CRUD操作在其中进行。是的,这个视图也有一个布局页面。请给出建议。只要创建链接中提到的helper类,并在需要使用实体对象时调用其GetCurrentContext方法(该方法应返回实体上下文)。@Tamim Salem:谢谢您的支持。