我正在创建一个使用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();
当我这样做时,我的数据库值不会改变...时间戳和值字段保持不变。
有人可能会指出我正确的方向......?
答案 0 :(得分:2)
实际上,不需要手动更新实体的状态。修改附加到上下文的实体的属性可以为您完成工作。
无论如何,如果device
是您的数据库上下文,则必须在其上调用SaveChanges
。