• 对于三层结构运用ActiveRecord的感想


          
             今天在搭三层结构的时候,遇到了一个问题,一个关于查询的问题. 因为刚接触三层+ActiveRecord+工厂模式结构,对这一套结构体系还不是很熟悉,所以只能是边学边搭,结果在数据层(DAL)遇到这样一个问题:对一个管理员分组表进行相应条件的筛选.返回DataTable. 一开始自己的想法很简单,不就是一个普通的筛选吗?接着开始写代码:
             /// <summary>
            /// 返回管理员分组数据集合
            /// </summary>
            /// <param name="where">Sql语句条件</param>
            /// <param name="parameters">参数</param>
            /// <returns>数据集</returns>
            public DataTable GetListTable(string where, SqlParameter[] parameters)
            {
               
                return MySqlHelper.ExceteDataTable(Sql,parameters);
            }  
           写完以后接着一想,好像不大对.这样一个方法在业务逻辑层调用的时候势必要写Sql语句和调用SqlParameter,
    这样项目就不可能实现支持多数据库,并且分层也不明确了.
             后来经过思考,修改代码
             public DataTable GetListTable(AdminGroup Model)
            {
                .................(相关代码(拼写Sql语句))
                return MySqlHelper.ExceteDataTable(Sql,parameters);
            }
             但是这样一来,如果我需要多表查询的时候怎么办?
             经过几个小时的思考和google,baidu还有寻求朋友的帮助 以后一个朋友和我对话提醒了我,他说:关系型数据库和面向对象编程天生不搭配,你只能根据需求在灵活和性能上取一个平衡点. 我想是啊 一个后台管理员分组的表记录一定很少 基本是不用筛选的 所以直接写一个返回所有记录的方法就可以了.如果有些表涉及多表查询,那就专门针对它们写一个针对多表查询的方法,一切以需求为主取灵活和性能的平衡点
  • 相关阅读:
    乱七八糟的
    C# 获取客户端电脑MAC 地址
    CheckInput
    gridview 合计行实现
    乱七八糟22
    jQuery UI CSS Framework
    CSS float和CSS clear
    smtp,POP3,IMAP
    960GridSystem
    CSS 清除浮动
  • 原文地址:https://www.cnblogs.com/lzhdizhen/p/773570.html
Copyright © 2020-2023  润新知