我在循环外创建了实体对象。
在循环中创建并保存模型对象,现在如果任何对象由于截断错误而未能保存,则 EF 开始在每个对象上给出错误。我认为它已经引用了内存中的对象。
代码是这样的
Entity dbEntity = new Entity();
foreach(obj in list)
{
try
{
//some changes in object
dbEntity.AddObject(obj);
dbEntity.SaveChanges(); //at this point error comes
obj=null;
}
catch(ex as exception)
{
}
}
所以说假设循环第一次运行对象保存了一切正常当第二个对象出现它有一些文本超过字段长度它现在给出错误第三次obj有更少的文本但是当SaveChanges
它发生时它给出相同的错误截断文本因此,如果列表中有 50 个对象,则只有第一个对象被保存,如果第二个对象出现错误,则其余所有对象都给出错误。