业务逻辑层的设计(四)——表模块模式简介
表模块(Table Module)
表模块模式不仅可以用VS的DataSet实现,也是O/RM初学者所常用的。
先来宏观地看一下操作流程:
通过创建一个DataSet数据集,添加一个表,轻松构建一个强类型的DataSet
可以为它添加一个查询
非常轻松,VS将自动生成查询SQL,但是SQL语句无法太复杂,不能超出VS的识别范围。
调用方法:
可以看到它返回的是一个强类型的DataTable,使用起来非常方便,但是当你实战中用的时候,会发现问题的,比如你有一个备注字段是Null,试试看吧,至少在.NET2.0中就悲剧了。
表数据网关模式:
用代码直观地表示:
在数据网关中执行SQL命令返回想要的数据集,然后在业务类中处理,得到想要的结果。
业务类
PPDataSet.PP_VIRTUALSENDCONTROLDataTable _table=null; public VirtualSendControlManager() { } public VirtualSendControlManager(PPDataSet.PP_VIRTUALSENDCONTROLDataTable table) { _table = table; } public PPDataSet.PP_VIRTUALSENDCONTROLRow GetRow(int index) { if (_table.Rows.Count == 0) { return null; } return _table.Rows[index] as PPDataSet.PP_VIRTUALSENDCONTROLRow; }
小结:
VS生成的强类型的DataTable给我们带来很多便利,它可以是某个表,也可以是视图。
表模块模式不仅可以用VS的DataSet实现,也是O/RM初学者所常用的。