Asp.net mvc 实体框架更新无跟踪实体
如何更新通过Asp.net mvc 实体框架更新无跟踪实体,asp.net-mvc,entity-framework,repository-pattern,Asp.net Mvc,Entity Framework,Repository Pattern,如何更新通过AsNoTracking()从上下文分离的实体 并且我的更新方法已设置为“已修改”: public virtual void Update(T entity) { dbset.Attach(entity); dataContext.Entry(entity).State = System.Data.Entity.EntityState.Modified; } 我能找到datacontext附加的上一个实体吗?或
AsNoTracking()
从上下文分离的实体
并且我的更新方法已设置为“已修改”:
public virtual void Update(T entity)
{
dbset.Attach(entity);
dataContext.Entry(entity).State = System.Data.Entity.EntityState.Modified;
}
我能找到datacontext附加的上一个实体吗?或任何阻止跟踪我的用户实体的建议?您可以更改实体的状态:
ctx.Entry(_agency).State = System.Data.Entity.EntityState.Modified;
ctx.SaveChanges();
更多阅读或文章。您正在更改的是什么以及实际结果是什么?事实上,我在更新()时遇到了“附加类型为“Project.Domain.Entities.Agency”的实体失败,因为相同类型的另一个实体已经具有相同的主键值”的错误因此,我尝试分离实体以解决问题,但现在更新什么也不做。不需要调用
Attach
,因为Entry
方法已经在内部附加了实体(如果尚未附加)。那么,为什么什么都没有更新?更改是什么?另外,您正在调用SaveChanges()
?这并不能解决我的问题。我仍然收到错误:“无法将角色自动添加到上下文中,因为它是使用NoTracking合并选项检索的。”
ctx.Entry(_agency).State = System.Data.Entity.EntityState.Modified;
ctx.SaveChanges();