解决方法 ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。
解决方法EF框架出现 ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。
可以使用Find查询后,再次修改 则解决问题
try
{
//事物 多表操作,操作放在 TransactionScope
using (var trac = new TransactionScope())
{
//用find方法可解决
var uu = sp.user.Find(u.id);
sp.Entry<user>(uu).State = System.Data.EntityState.Detached;
//更新user数据表
sp.user.Attach(uu);
uu.cishucount=uu.cishucount+ 1;
sp.SaveChanges();
userrecord usreord = new userrecord {
cardtype = u.cardtype,
userid=u.id,
addtime=dateTime,
usermanger=GlobalsInfo.admin,
cardlog="共打卡"+ u.cishucount + "次"
};
sp.userrecord.Add(usreord);
sp.SaveChanges();
trac.Complete();
}
}
catch (Exception ex) {
Transaction.Current.Rollback();
return MemberStateDto.setMemberStateDto(500, "数据出错,请重新打卡!");
}

浙公网安备 33010602011771号