在学习应用.Net的CSLA框架时,调试中遇到了对象含无效值,因此不能保存”的错误:
在这里自己查看了代码一些业务对象的字段的值是否违反了哪个验证规则,但看了很久还是没有发现去问题的源头,这时我请教了一个CSLA框架的高手,他很快的就很够找出错误的源头,是在我们的调试中,首先查看我们的业务从对象的IsValid这个属性,然后发现为false,这说明这个对象验证不通过,无效。这个我们在调试中,查看业务从对象的BrokenRulesCollection属性,这个属性可以看到如下的信息:
[0]:{Csla.Validation.BrokenRule}mediOuter.MediOuterDtls[53].BrokenRulesCollection[0]
{Csla.Validation.BrokenRule}
base {Csla.Core.MobileObject}: {Csla.Validation.BrokenRule}
Description: "数量必须大于0!"
Property: "ShowQuan"
RuleName: "rule://OurHis.Amsh.Library.MediOuterDtl/CheckZero/ShowQuan"
Severity: Error
从这些信息中就可以找到是那个业务对象的哪个字段违反了哪个规则。