当插入时,我们只是
MyDBEntities db = new MyDBEntities();
TableNameEntity o = new TableNameEntity();
o.Name = "me";
o.Age = 12;
db.TableNameEntity.AddObject(o); // Added
o = new TableNameEntity();
o.Name = "you";
o.Age = 23;
db.TableNameEntity.AddObject(o); // Added
db.SaveChanges(); // commits to db
工作正常。
但我怎么能在更新下呢?
TableNameEntity o = db.TableNameEntity.Where(x=>x.id.Equals(tableId_1))
.FirstOrDefault();
o.Name = "myself";
o = db.TableNameEntity.Where(x=>x.id.Equals(tableId_2)).FirstOrDefault();
o.Name = "yourself";
db.SaveChanges(); // commits to db .. Err!!!
没有办法保留对象吗?所以我们最后只是SaveChanges
?
我所追求的是拥有一个共同的位置来放置和保存对象,只有在最后,我才会对数据库进行所有更改。
目前在插入内容:
// Create 1nd Object
TableNameEntity o = new TableNameEntity();
// Don't Update the Database, just place it in the "basket"
db.TableNameEntity.AddObject(o);
// Create 2nd Object
o = new TableNameEntity();
// Don't Update the Database, just place it in the "basket"
db.TableNameEntity.AddObject(o);
// Now that I have all my objects done, let's commit all to the DB
db.SaveChanges();
是否有表单可以执行此操作,但只需更新(因此我们无法使用AddObject
)
答案 0 :(得分:1)
在这里查看,您可以使用stub entities更新对象。这将允许您附加存根并更新或插入,然后保存上下文。 http://blogs.msdn.com/b/alexj/archive/2009/06/19/tip-26-how-to-avoid-database-queries-using-stub-entities.aspx
请注意,这还可以节省您对数据库运行查询的时间,以查找要更新的对象。