业务逻辑层的设计(四)——表模块模式简介
表模块(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初学者所常用的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义