EF ASP.NET MVC 更新出错:ObjectStateManager中已存在具有同一键的对象

解决方案

/// <summary>
/// 保存
/// </summary>
/// <param name="g"></param>
public static void DbSave(GROUP g)
{
if (g == null)
{
return;
}

if (YJdb.Entry(g).State == EntityState.Detached)
{
var set = YJdb.Set<GROUP>();
GROUP attachedProduct = set.Local.SingleOrDefault(p => p.ID == g.ID);
//如果已经被上下文追踪
if (attachedProduct != null)
{
var attachedEntry = YJdb.Entry(attachedProduct);
attachedEntry.CurrentValues.SetValues(g);
}
else //如果不在当前上下文追踪
{
YJdb.Entry(g).State = EntityState.Modified;
}
}

YJdb.SaveChanges();
}

时间: 2024-10-26 08:09:15

EF ASP.NET MVC 更新出错:ObjectStateManager中已存在具有同一键的对象的相关文章

ASP.NET MVC3更新出错:ObjectStateManager中已存在具有同一键的对象

程序代码: [HttpPost] public ActionResult Edit(Person person) { if (ModelState.IsValid) { Person oldperson = db.People.Where(p => p.Id == person.Id).FirstOrDefault(); //TODO db.Entry(person).State = EntityState.Modified; db.SaveChanges(); return RedirectT

ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象

程序代码 [HttpPost]public ActionResult Edit(Person person){    if (ModelState.IsValid)    {        Person oldperson = db.People.Where(p => p.Id == person.Id).FirstOrDefault();        //TODO        db.Entry(person).State = EntityState.Modified;        db.

Entity Framework5.0运行时错误ObjectStateManager 中已存在具有同一键的对象

EF写了个简单的框架,在把查询出来的数据修改回去时,报了ObjectStateManager 中已存在具有同一键的对象这样一个错误,寻寻觅觅终于找到了最终的解决方案. ObjectStateManager 中已存在具有同一键的对象.ObjectStateManager 无法跟踪具有相同键的多个对象. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.InvalidOperationExc

数据库中已存在名为 &#39;View_Business&#39; 的对象。

用EF框架+MCF,编译的时候出现:数据库中已存在名为 'View_Business' 的对象. 解决方案: 1.Enable-Migrations2.Add-Migration3.Update-Database -Verbose 进行数据库更新. 数据库中已存在名为 'View_Business' 的对象.

(转)ASP.NET MVC 3和Razor中的@helper 语法

转自:http://kb.cnblogs.com/page/102191/ ASP.NET MVC 3支持一项名为“Razor”的新视图引擎选项(除了继续支持/加强现有的.aspx视图引擎外).当编写一个视图模板时,Razor将所需的字符和击键数减少到最小,并保证一个快速.通畅的编码工作流. 与大部分模板的语法不同,在Razor的帮助下,您不需要中断代码编写,仅仅为了在HTML中标注服务器端代码块的开始和结束.代码分析器足够聪明,它能够从你的代码里推断出是否为服务器端代码.这种更加简洁.富有表现

学习笔记:Asp.Net MVC更新部分视图实现

Asp.Net MVC 更新部分视图实现 设想我们有一篇文章下面的提交评论时如何只刷新评论内容部分, 方法一,利用ajax通过js代码实现. 方法二,利用Ajax.BeginForm()+部分视图实现. 通过js代码的方法比较常见,这里主要是探讨通过Ajax.BeginForm()+部分视图的方式实现.这样还可提高该视图的重用性.同理,有多处引用的零部件或页面部分内容更新等,也可以利用此方法实现. Step1,创建生成Form的Action,代码如下: [ChildActionOnly()] p

在 ASP.NET MVC Web 应用程序中输出 RSS Feeds

RSS全称Really Simple Syndication.一些更新频率较高的网站可以通过RSS让订阅者快速获取更新信息.RSS文档需遵守XML规范的,其中必需包含标题.链接.描述信息,还可以包含发布时间.最后更新时间等信息. 本文将介绍通过LINQ to XML生成XML文档,并在ASP.NET MVC Web应用程序中输出. 在生成RSS文档前,先简单了解一下RSS的结构.根节点rss下有channel节点,channel节点的一些子节点(title,link,description)包含

Asp.Net MVC 4 Web API 中的安全认证-使用OAuth

Asp.Net MVC 4 Web API 中的安全认证-使用OAuth 各种语言实现的oauth认证: http://oauth.net/code/ 上一篇文章介绍了如何使用基本的http认证来实现asp.net web api的跨平台安全认证. 这里说明一个如何使用oauth实现的认证.oauth大家可能不陌生.那么这里需要注意的是我们使用的是.net平台一个比较好的开源oauth库. DOTNETOPENAUTH. 就像上图所示,我们需要一个ISSSUE Server来给我们一个token

Asp.net MVC 4新项目中创建area的后续操作

Asp.net MVC 4新项目中创建area后,往往HomeController与area的HomeController路由发生混淆,需要手工设置一些地方避免mvc无法识别默认路由的状况. 无废话具体步骤: 1. 检查早Global.asax和\App_Start\RouteConfig.cs中是否已经自动添加了AreaRegistration.RegisterAllAreas();如不存在,进入第2步,否则第3步 2. 在\App_Start\RouteConfig.cs中,添加AreaRe