2012-01-04 39 views
0

我正在創建一個使用EF4和DBContext訪問後端數據庫的應用程序。EntityFramework 4 - 更新foreach中的記錄

在應用程序中的某一點,我拉回一組記錄並迭代它們,更新值和時間戳。

代碼:

// update any notified parameters... 
foreach (RecvParam parameter in RecvParameters) 
{ 
    // get the existing parameter 
    Data.DeviceParameter dbParameter = this.device.DeviceParameters.SingleOrDefault(x => x.Name == parameter.Name); 

    // null check 
    if (dbParameter == null) 
     continue; 

    // update an existing parameter instance 
    dbParameter.Value = parameter.Value; 
    dbParameter.UpdatedOn = DateTime.Now; 

    // add an entry to the context 
    DBContext.Entry(dbParameter).State = EntityState.Modified;   
} 

DBContext.SaveChanges(); 

當我這樣做,我的數據庫值不會改變......時間戳和值字段保持不變。

有人可能指出我在正確的方向......?

+0

http://stackoverflow.com/questions/5042327/entity-framework-storegeneratedpattern-computed-property-problem 實際上隱藏着這個提問/回答中我的問題...... StoreGeneratedPattern的計算歡迎使用屬性意味着該字段不能更新。 – justacodemonkey 2012-01-04 13:11:39

回答

2

實際上並不需要手動更新實體的狀態。修改連接到上下文的實體的屬性爲您完成工作。

無論如何,如果device是您的數據庫上下文,您必須調用SaveChanges就可以了。

+0

http://stackoverflow.com/questions/5042327/entity-framework-storegeneratedpattern-computed-property-problem 實際上隱藏着這個提問/回答中我的問題...... StoreGeneratedPattern的計算歡迎使用屬性意味着領域無法更新。 – justacodemonkey 2012-01-04 13:11:23