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 回答