我有一个包含多个记录的列表。我喜欢使用AddObject创建这些记录,但发生的事情是它只创建列表中的最后一条记录。
这是代码
foreach (var item in invlist) {
invmodel.tblrec.FirstName = item.FirstName;
invmodel.tblrec.LastName = item.LastName;
db.tblRec.AddObject(invmodel.tblrec);
}
db.SaveChanges();
答案 0 :(得分:2)
我将从代码的这个非常简单的修改开始:
foreach (var item in invlist) {
var tblRec = new TblRec();
tblRec.FirstName = item.FirstName;
tblRec.LastName = item.LastName;
db.tblRec.AddObject(tblRec);
}
db.SaveChanges();
为什么呢?因为您的代码重复添加相同的实例,而对于EF,它仍然是同一个对象 - 它将导致异常,或者只将最后一个项插入数据库。