您的位置:首页 > 其它

entity中对集合List进行更新

2016-03-28 13:57 253 查看
private void SaveDatabase(List<trades> list)
{
using (SMTERPEntities smterpe = new SMTERPEntities())
{
foreach (var item in list)
{
trades trade = smterpe.trades.FirstOrDefault(a => a.tid == item.tid);
if (trade != null)
{
smterpe.Entry(trade).CurrentValues.SetValues(item);
}
else
{ smterpe.Entry<trades>(item).State = EntityState.Added; }

}
smterpe.SaveChanges();
}

}

使用 smterpe.Entry<trades>(item).State = EntityState.Modified;

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

解决三种方法:

1、对取到的trade进行赋值

2、在smterpe.trades后面加AsNoTracking()

3、用上面方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: