如何附加和更新现有实体?

时间:2012-07-30 18:44:44

标签: c# entity-framework

我想在我的网页上构建一个断开连接的对象:

var entity = new MyEntity();
entity.ID = IdFromPage;
entity.Name = UpdatedNameFromPage;

将其连接到我的对象上下文,然后调用context.Save()

但是我该怎么做?我不想使用linq来提取像这样的实体......

var entityFromPage = new MyEntity();
entity.ID = IdFromPage;
entity.Name = UpdatedNameFromPage;

var connectedEntity = _db.MyEntities.Where(x => x.ID == IdFromPage).First();
connectedEntity.ID = entityFromPage.ID;
connectedEntity.Name = entityFromPage.Name;

因为这个脚本的第二部分可能很庞大,我不想重新映射所有内容。我只是想把它插入ID,然后调用Save()这可能吗?

1 个答案:

答案 0 :(得分:3)

你不必。

如果您知道它已存在于数据库中,

objectcontext.YourEntities.Attach(entity);
objectcontext.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);       
objectcontext.SaveChanges();

(如果是新实体,则将其添加到上下文中)