2012-01-04 31 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の計算propetyは意味私の問題は、実際にこの質問/答えの中に隠されていた ... フィールドは更新できませんでした。 – justacodemonkey

答えて

2

実際にエンティティの状態を手動で更新する必要はありません。コンテキストにアタッチされているエンティティのプロパティを変更すると、そのジョブが自動的に処理されます。

deviceがデータベースコンテキストの場合は、SaveChangesを呼び出す必要があります。

+0

は私の問題は、実際にこの質問/答えの中に隠されていた ... StoreGeneratedPatternの計算propetyは、フィールドを意味しhttp://stackoverflow.com/questions/5042327/entity-framework-storegeneratedpattern-computed-property-problem更新できませんでした。 – justacodemonkey

関連する問題