CSLA业务对像状态说明
来源:互联网 发布:燕十八php教程全套 编辑:程序博客网 时间:2024/05/18 01:49
Csla框架中,状态的管理只对可编辑的对象有用,包括可编辑的根、子对象,可编辑的根、子对象集,还有一个就是动态可编辑对象。对于只读的对象本身就不具可编辑性,所以也谈不上状态了。
框架中的状态属性包括:IsNew,IsSelfDirty,IsDirty,IsSelfValid,IsValid,IsSavable,IsDeleted。其中在以前的版本中没有IsSelf与IsSelfValid,其展现形式是通过用户自己来实现的,在现在的版本中因为有了字段管理功能,所以这些功能就直接实现在了框架内部,比以前方便很多。也许从名称就可以看得出各个状态的意义,以下就个人看法作小小说明:
(状态不会独立工作,有些状态的依据是来自于其他某些的状态,如IsDirty与IsSelfDirty有关,是否可保存状态IsSavable与IsDeleted,IsNew等多个状态有关(当然也可能与对象的IsBusy状态有关);在保存时以上多个状态都会先后起作用!)
IsNew,顾名思义,代表新对象的意思,它标识如果内存中的对象主键存在于数据库中,那么值为False,否则值为True,在框架中创建新对象时默认为True,或者旧对象被删除后,系统也会将值赋予True(内在与数据库中主键不再对应)。在保存时,如果IsNew为True,系统会调用新增方法,否则就会是修改或删除。
IsSelfDirty(这个属性在看2.0版本时还没有),标识对象创建/获取后是否对其数据进行更新过(书上称为脏对象),所以无论是新建对象时还是对象重获取时,对象的脏状态默认是False的,当对象在对对象属性进行赋值或通过方法间接操作时,脏属性就会标识为True。IsDirty与IsSelfDirty大体一致,但IsDirty的状态还会与它的子对象的状态相关,也就是只有对象自身的IsSelfDirty为False并且所有子对象的IsDirty的状态为False时此对象的IsDrity才为False,否则当前的对象就是标识为脏的,所以每次访问该属性时它都会去遍历它的所有子对象的状态(当然如果有为True的就会直接返回),这个功能在旧版本中是在对象中通过重写IsDirty来实现的,在现在的版本中框架通过字段管理就可以自动进行跟踪(前提是属性中的子对象是通过框架内部的字段管理方式来实现的)。因为在IsDirty为False时当前对象(及子对象)是未编辑状态,所以为True时系统才会继续向下根据其他状态判断该执行什么数据操作方法,
IsValid与IsSelfValid与脏对象原理一致,只不过是否通过验证是根据对象的数据有效性有关,只有当前对象的所有字段都有效,也就是没有违反任何规则时才为True。数据有效性及验证规则的统一管理也是框架的一个实现目标,以后再说。
IsDeleted,标识当前对象是否被删除。框架支持直接删除和延迟删除,是否删除属性就是延迟删除进行操作的依据(注意的是子对象的的删除方法是DeleteChild(),根对象的为Delete(),不通用!),它会将当前可编辑的对象标识为IsDeleted=True,系统并不会直接提交,而是作删除标记,当用户最后调用Save()方法时系统会根据当前对象或子对象的删除状态进行调用删除方法。
最后的是IsSavable属性,它是以上属性的集合体,标识当前对象是否可保存,
- CSLA业务对像状态说明
- csla之业务逻辑
- 关于csla业务对象
- TList 对像说明
- TList 对像说明
- CSLA框架试用:业务对象分类
- 状态模式state(对像行为)
- 和我一起学CSLA.NET----创建业务对象1
- 和我一起学CSLA.NET----创建业务对象2
- 和我一起学CSLA.NET----创建业务对象3
- 一个基于封装CSLA框架后,设计业务类的例子:users
- 一个基于封装CSLA框架后,设计业务类的例子:User
- Phenix.Business(CSLA)业务类代码生成模板 for CodeSmith 52 发布
- 一个基于封装CSLA框架后,设计业务类的例子:users .
- 一个基于封装CSLA框架后,设计业务类的例子:User .
- CSLA.Net 3.0.5 项目管理示例 业务基类 Project.cs
- OA业务说明
- VPMN业务说明
- shell脚本:一次读取文件的一行,并输出
- In-place Merge Sort (原地归并排序)
- (20)WEB的相关知识以及JSP入门基础知识点总结
- Wince RemoteAdmin,Telnet,WebAdmin用户和密码操作
- 2011-10-11 新闻发布系统制作1
- CSLA业务对像状态说明
- SQL 小知识
- windows xcopy 复制文件、文件夹,并忽然错误的文件
- 软件开发相关文档
- Keynote System 9千万美元收购云计算移动应用评测平台DeviceAnywhere
- System.MissingMethodException:+Method+not+found:+解决方案
- 关于SQL中的EXISTS
- volatile关键字
- 用cmd对文件进行打包的操作