Chinaunix首页 | 论坛 | 博客
  • 博客访问: 527056
  • 博文数量: 39
  • 博客积分: 1046
  • 博客等级: 准尉
  • 技术积分: 895
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-10 16:50
文章分类

全部博文(39)

文章存档

2013年(8)

2012年(31)

分类: Web开发

2012-12-10 11:54:37

最近刚开始用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出现。。
阅读(3261) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~