MySQL实体更新
本文关键字:更新 实体 MySQL | 更新日期: 2023-09-27 17:59:02
我正在使用此代码更新我们通过AJAX从前端接收的对象(MySQL):
foreach (ChequeDiaryPaymentDetail item in data.Updated) {
this.DBContext.ChequeDiaryPaymentDetails.Attach(item);
this.DBContext.ApplyOriginalValues("ChequeDiaryPaymentDetails", item);
}
这是正确的方法吗?如果我做同样的事情,除了替换
ApplyOriginalValues
对于
this.DBContext.ObjectStateManager.ChangeObjectState(item, System.Data.EntityState.Modified);
DB也被正确地更新。后一种方法是否错误地强制更新?我只是想确保我从一开始就没有做错!
如果您的对象处于Unchanged状态,那么ApplyOriginalValues方法会将对象状态更改为Modified(就像ChangeObjectState方法一样)。我想是这样的
因此,如果您的逻辑需要在执行更新之前应用原始值(例如,您正在实现乐观并发模型),那么更好的解决方案将是首先应用原始值。否则,只更改对象状态就足够了。