我们可以在实体对象中更新一个对象吗?

时间:2010-11-08 00:13:52

标签: entity-framework ado.net

插入时,我们只是

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

1 个答案:

答案 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

请注意,这还可以节省您对数据库运行查询的时间,以查找要更新的对象。