2012-07-30 60 views
0

我想構建一個斷開連接的對象我的網頁上:如何附加和更新現有實體?

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()這可能嗎?

回答

3

您不需要。

如果你知道它已經存在的數據庫,

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

(如果它是一個新的實體,那麼你將它添加到上下文)

+1

至少你必須設置實體狀態'修改',否則你的代碼不起作用。 – Slauma 2012-07-30 19:12:42

+0

@Slauma好點 – podiluska 2012-07-30 19:15:34

相關問題