我有一个实体对象类型的对象列表 我正在使用ms sql server 2008
我写了一个类似的代码:
foreach (some_entity_obj obj_to_handle in this.some_entity_obj_list)
{
try
{
db.some_entity_obj.AddObject(obj_to_handle);
if (dbsaveCounter % 10 == 0)
{
db.SaveChanges();
this.monitor.SyncValues(some_monitoring_unit, another_monitoring_unit);
some_monitoring_unit = 0;
another_monitoring_unit = 0;
}
if (obj_to_handle.some_monitoring_unit != null)
some_monitoring_unit += (double)obj_to_handle.some_monitoring_unit;
if (obj_to_handle.another_monitoring_unit != null)
another_monitoring_unit += (double)obj_to_handle.another_monitoring_unit;
dbsaveCounter++;
}
catch (Exception ex)
{
this.monitor.PushToUnsecceeded_rows(obj_to_handle,ex);
this.monitor.PushToErrors("Error in ** : ", ex, false);
}
}
db.SaveChanges();
this.monitor.SyncValues(some_monitoring_unit, another_monitoring_unit);
我收到以下异常: 无法确定“实体对象”关系的主要结尾。多个添加的实体可能具有相同的主键。
如果我保存每次循环运行的更改,那么
以下是我的问题的简短版本:
为什么会这样:
foreach (foo _entObj in someList)
{
db.foo.AddObject(_entObj);
db.SaveChanges();
}
这不起作用:
int cnt = 0;
foreach (foo _entObj in someList)
{
db.foo.AddObject(_entObj);
if (cnt%10 == 0)
db.SaveChanges();
cnt++;
}
db.SaveChanges();