2013-07-04 89 views
0

那麼,我使用MVC3和EF4,一切都很好......除了當我必須更新一個對象,但不是所有的屬性。如何將特定屬性恢復爲其保存的值(EF4)?

下面是其迄今爲止實施: 我有一個類,它的屬性和它在我的DbContext一個DbSet。我的頁面正在發送一個JSon,其中包含那個對象的所有值(包括我想要更新的那些和我想保持不變的那些)。在控制器上,我收到對象,只是將狀態更改爲EntityState.Modified並調用DbContext的SaveChanges()。

正如我所說的,一切都很好,但我確實希望這個JSon接收到的一些值被丟棄,並保持它們的值不變,因爲它們在數據庫上。

我該如何做到這一點?

在此先感謝您的幫助......

回答

1

不知道你的代碼,但是當你只是想更新的更新調用某些屬性來到EF你應該這樣做,像這樣....

db.Person.Attach(person); 
db.Entry(person).Property(x => x.Name).IsModified = true; 
db.SaveChanges(); 

所以你會修改你想要的任何屬性,然後單獨留下哪些你不知道的屬性。

0

你也可以嘗試這..

using (DBContext newCtx = new DBContext()) 
{ 
    newCtx.Employee.Attach(emp); 
    newCtx.ObjectStateManager.ChangeObjectState(emp, System.Data.EntityState.Modified); 
    newCtx.SaveChanges(); 
} 

參考:Update Entity in Entity Framework

+0

但是,在這種情況下,你沒有選擇的屬性離開不變,並更新哪些...都能跟得上。那根本不會這樣做...... –

相關問題