最近刚开始用MySoft.Data
遇到一个问题
即,在调用model.Attach 前,这个model必须先进行初始化(从数据库里加载数值)
这样,其内部用于判断字段是否更新的方法
protected void OnPropertyValueChange(Field field, object oldValue, object newValue)
才有判定的依据,否则,虽然较少遇见,但可能存在某些字段无法保存的问题。
1.不稳妥的场景(asp.net mvc强类型视图)
编辑页面post提交保存,经过asp.net mvc 强类型视图 封装,直接作为一个目标model传到后台,直接使用该model调用Attach 并制定排除更新的列,再执行save操作。
但其中包含一个字段,类型为不可为null的int32,会遇到页面提交的该字段为非零时,可成功保存,而置为零时,无法保存。
2.解决方法,以主键获取原文内容作为oldmodel,将可更改的几个字段从model赋值到oldmodel,再执行保存。
其实解决方法本就是按部就班的处理方法,而出现问题的原因在于快速开发过程中的“偷懒”。当然,如果有事先研究过Mysoft.Data,估计也不会有这种bug出现。。
阅读(3315) | 评论(0) | 转发(0) |