错误信息 :
附加"FaridCRMData.Models.Customer"类型的实体失败,因为同一类型的另一个实体已具有相同的主键值.
Attach()如果图中的任何实体具有冲突的>键值,则在使用该方法或将实体的状态设置为"未更改"或"已修改" 时,可能会发生这种情况.这可能是因为某些实体是新的并且尚未收到数据库生成的键值.在这种情况下,使用"添加"方法或"已添加"实体状态来跟踪图形,然后根据需要将非新实体的状态设置为"未更改"或"已修改".
我的代码:
public class FactorController : Controller
{
public JsonResult SaveFactor(Factor factor,int id)
{
if (id > 0)
{
bool result = new FactorService.BaseService.Update(factor);
return new JsonResult() { Data = result };
}
}
}
Run Code Online (Sandbox Code Playgroud)
FactorService.BaseService.cs:
public bool Update(TEntity entity)
{
var entry = context.Entry(entity);
if (entry.State == EntityState.Detached || entry.State == EntityState.Modified)
{
context.Set<TEntity>().Attach(entity);// Error Is Here
entry.State = EntityState.Modified;
context.SaveChanges();
}
return true;
}
Run Code Online (Sandbox Code Playgroud)