zoukankan      html  css  js  c++  java
  • 三层开发!!

    三层开发:BLL DAL UI

    BLL:业务逻辑层 IBLL(业务逻辑的接口)     此类中调用DAL方法

    DAL:数据访问层 IDAL(数据访问的接口)    此类中调用linq语句访问数据

    UI:界面层

    BLL中,每个方法都要单独实例化数据访问类,保证数据的及时更新;

    DAL中,对象不能直接替换,要对每个属性逐一更改;

    --------------------

    抽象工厂:(反射) using System.Reflection;                  --为了更好的实现独立,降低耦合度

    在IDAL中建立DAL_factory类中:

    public static IDAL_people createpeo()
            {
                IDAL_people p = Assembly.Load("SQL_DAL").CreateInstance("SQL_DAL.DAL_people") as IDAL_people;
                return p;
            }

    BLL中实例化类:

    IDAL_people peoDAL = DAL_Factory.createpeo();
    IDAL_nation naDAL = DAL_Factory.createna();

    ---------------------

    ConfigurationManager     --config配置文件,需要引用 using System.Configuration;         

    Web的config配置文件中:

      <appSettings>
        <add   key="load"  value="SQL_DAL"       />  
        <add   key="peo"  value="DAL_people"       />    
        <add   key="na"  value="DAL_nation"       />  
      </appSettings>

    DAL_factory类中:

    public static IDAL_people createpeo()
            {
                IDAL_people p = null;
                string load = ConfigurationManager.AppSettings["load"];
                string peo = ConfigurationManager.AppSettings["peo"];
                p = Assembly.Load(load).CreateInstance(load + "." + peo) as IDAL_people;
                return p;
            }

    更改时只需更改 键值对;

    ----------------------

    lambda表达式(r=>r.)   using System.Linq.Expressions;

    Expression<Func<people, bool>> exp

    数据访问DAL中的方法:

    public IQueryable<people> se(Expression<Func<people, bool>> exp)
            {
                return con.people.Where(exp).AsQueryable();
            }

    业务逻辑BLL中的方法:

    public IQueryable<people> se(string s)
            {
                IDAL_people peoDAL = DAL_Factory.createpeo();
                Expression<Func<people, bool>> exp = r => r.nickname.Contains(s);
                return peoDAL.se(exp);
            }
  • 相关阅读:
    vue路由对象($route)参数简介
    原生js写ajax请求(复习)
    js,jq.事件代理(事件委托)复习。
    CSS 设置table下tbody滚动条
    H5 调用手机摄像机、相册功能
    css实现六边形图片(最简单易懂方法实现高逼格图片展示)
    input表单的type属性详解,不同type不同属性之间区别
    js对象,set和get方法 的三种实现形式
    day03 变量
    day01 js三种导入html的方法、js书写规范、变量的基本使用、变量提升
  • 原文地址:https://www.cnblogs.com/m110/p/8274879.html
Copyright © 2011-2022 走看看