0

EF4とDBContextを使用してバックエンドデータベースにアクセスするアプリを作成しています。

アプリケーションのある時点で、レコードのセットをプルバックして繰り返し、値とタイムスタンプを更新します。

コード:

// 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();

これを行っても、データベースの値は変更されません...タイムスタンプと値のフィールドは同じままです。

誰かが私を正しい方向に向けることができるでしょうか...?

4

1 に答える 1

2

実際、エンティティの状態を手動で更新する必要はありません。コンテキストに関連付けられているエンティティのプロパティを変更すると、その作業が行われます。

とにかく、deviceあなたのデータベース コンテキストの場合は、SaveChangesそれを呼び出す必要があります。

于 2012-01-04T12:36:47.243 に答える