业务逻辑层的设计(四)——表模块模式简介

表模块(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初学者所常用的。

posted @   十三燕  阅读(3436)  评论(2编辑  收藏  举报
编辑推荐:
· .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 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示