更新记录
问题描述:
我的代码片段,我不能完全得到工作:更新记录
StoreDataHandler dataHandler = new StoreDataHandler(HttpContext.Request["data"]);
ChangeRecords<ChequeDiary> data = dataHandler.ObjectData<ChequeDiary>();
foreach (ChequeDiary item in data.Updated) {
db.ChequeDiaries.Attach(item);
db.Refresh(System.Data.Objects.RefreshMode.ClientWins, item);
}
这是为了什么变化和更新底层对象,但当我打电话
db.SaveChanges();
..没有更新。如果我使用:
foreach (ChequeDiary item in data.Updated) {
ChequeDiary obj = db.ChequeDiaries.FirstOrDefault(o => o.Id == item.Id);
obj.BankedAmount = item.BankedAmount;
}
和显式设置每个属性,它的工作原理。为什么?!
答
您的第一个示例可能不会将任何属性标记为已修改。检查ObjectStateManager
以确认这一点。一般来说,您必须在附加对象后修改属性。
谢谢,我想我只是希望它知道它通过的数据。欢呼清理它。 – pierre 2011-02-14 14:29:15