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、用上面方法
相关文章推荐
- Spring学习——(三)基础注解介绍
- HTTP POST GET 本质区别详解
- Android 分析log
- [RabbitMQ] RabbitMQ Cluster ConnectionClose Error with HAProxy
- 浮动兼容问题
- LINUX 计划书 By Wenxin.Z
- 系统真机测试时出现 could not find developer disk image问题
- PHP面向对象——clone关键字
- [Tomcat] Tomcat的classloader
- HDU 4799 LIKE vs CANDLE 树形dp
- Python读大数据txt
- windows caffe 跑自己的数据遇到的问题
- 数据库Sharding的基本思想和切分策略
- 数据库Sharding的基本思想和切分策略
- UIView扩展--方便控件的布局
- 67.iOS严谨单例写法/可继承单例
- extjs入门
- C# 键值对的类型
- Java查找算法——二分查找
- android 中对图片尺度压缩和质量压缩