关于简单的三层的简化(bll,dal,model)的封装这里全部都在一个文件主要在于明白意思
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 封装泛型CRUD
{
public class TeacherInfoDAL<T> : BaseDAL<T> where T : new()
{
public override T Add(T obj)
{
Console.WriteLine("TeacherInfoDAL添加了一个对象");
return base.Add(obj);
}
public override int Del(T obj)
{
Console.WriteLine("TeacherInfoDAL删除了一个对象");
return base.Del(obj);
}
public override T Update(T obj)
{
Console.WriteLine("TeacherInfoDAL更新了一个对象");
return base.Update(obj);
}
public override IList<T> QueryList(Func<T, bool> whereLambada)
{
Console.WriteLine("TeacherInfoDAL查询了系列个对象");
return base.QueryList(whereLambada);
}
}
public class UserInfoDAL<T> : BaseDAL<T> where T : new()
{
public override T Add(T obj)
{
Console.WriteLine("UserInfoDAL添加了一个对象");
base.Add(obj);
return obj;
}
public override int Del(T obj)
{
Console.WriteLine("UserInfoDAL删除了一个对象");
return base.Del(obj);
}
public override T Update(T obj)
{
Console.WriteLine("UserInfoDAL更新了一个对象");
return base.Update(obj);
}
public override IList<T> QueryList(Func<T, bool> whereLambada)
{
Console.WriteLine("UserInfoDAL查询了系列个对象");
return base.QueryList(whereLambada);
}
}
public class BaseDAL<T> where T : new()
{
public virtual T Add(T obj)
{
return obj;
}
public virtual int Del(T obj)
{
return 0;
}
public virtual T Update(T obj)
{
return new T();
}
public virtual IList<T> QueryList(Func<T,bool> whereLambada )
{
IList<T> list = new List<T>();
foreach (var r in list)
{
if (whereLambada(r))
{
list.Add(r);
}
}
return list;
}
}
public abstract class BaseBLL<T> where T : new()
{
public BaseDAL<T> basedal;
public virtual T Add(T obj)
{
Console.WriteLine("基本业务处理add");
return new T();
}
public virtual int Del(T obj)
{
Console.WriteLine("基本业务处理del");
return 0;
}
public virtual T Update(T obj)
{
Console.WriteLine("基本业务处理update");
return new T();
}
public virtual IList<T> QueryList(Func<T, bool> whereLambada)
{
Console.WriteLine("基本业务处理QueryList");
return new List<T>();
}
public abstract void setDAL( );
}
public class UserInfoBLL<T>:BaseBLL<T> where T : new()
{
public UserInfoBLL()
{
setDAL();
}
public override T Add(T obj)
{
base.Add(obj);
Console.WriteLine("UserInfoBLL务处理add");
return basedal.Add(obj);
}
public override int Del(T obj)
{
base.Del(obj);
Console.WriteLine("UserInfoBLL务处理del");
return basedal.Del(obj);
}
public override T Update(T obj)
{
base.Update(obj);
Console.WriteLine("UserInfoBLL务处理update");
return basedal.Update(obj);
}
public override IList<T> QueryList(Func<T, bool> whereLambada)
{
base.QueryList(whereLambada);
Console.WriteLine("UserInfoBLL务处理querylist");
return basedal.QueryList(whereLambada);
}
public override void setDAL()
{
basedal=new UserInfoDAL<T>();
}
}
public class TeacheInfoBLL<T> : BaseBLL<T> where T : new()
{
public TeacheInfoBLL()
{
setDAL();
}
public override void setDAL()
{
basedal=new TeacherInfoDAL<T>();
}
public override T Add(T obj)
{
base.Add(obj);
Console.WriteLine("TeacheInfoBLL务处理add");
return basedal.Add(obj);
}
public override int Del(T obj)
{
base.Del(obj);
Console.WriteLine("TeacheInfoBLL务处理del");
return basedal.Del(obj);
}
public override T Update(T obj)
{
base.Update(obj);
Console.WriteLine("TeacheInfoBLL务处理update");
return basedal.Update(obj);
}
public override IList<T> QueryList(Func<T, bool> whereLambada)
{
base.QueryList(whereLambada);
Console.WriteLine("TeacheInfoBLL务处理querylist");
return basedal.QueryList(whereLambada);
}
}
class Program
{
static void Main(string[] args)
{
BaseBLL<Student> bll=new TeacheInfoBLL<Student>();
Student student=new Student();
student.StudentNo = 1;
bll.Add(new Student());
bll.Del(new Student());
bll.Update(new Student());
bll.QueryList(a => a.StudentNo != 0);
Console.WriteLine("------------------------");
BaseBLL<Teacher> bll2 = new UserInfoBLL<Teacher>();
Teacher t = new Teacher();
t.TeacherNO = 1;
bll2.Add(t);
bll2.Del(t);
bll2.Update(t);
bll2.QueryList(a => a.TeacherNO != 0);
Console.ReadKey();
}
}
public class Student
{
public int StudentNo { get; set; }
public string Name { get; set; }
public string Sex { get; set; }
public int Age { get; set; }
public string Address { get; set; }
public string Class { get; set; }
public string DeptNO { get; set; }
}
public class Teacher
{
public int TeacherNO { get; set; }
public string Name { get; set; }
public string Sex { get; set; }
public int Age { get; set; }
public string DeptNo { get; set; }
}
}
关于简单的三层的简化(bll,dal,model)的封装这里全部都在一个文件主要在于明白意思的更多相关文章
- Web三层-UI/BLL/DAL/MODEL
2013传智播客视频\视频\2013-05-28-EF\视频 创建4个程序集,添加引用,model添加映射, P01UI表现层--BLL+MODELP02BLL业务层--DAL+MODELP03DAL ...
- NHibernate框架与BLL+DAL+Model+Controller+UI 多层架构十分相似--『Spring.NET+NHibernate+泛型』概述、知识准备及介绍(一)
原文://http://blog.csdn.net/wb09100310/article/details/47271555 1. 概述 搭建了Spring.NET+NHibernate的一个数据查询系 ...
- 【转】asp.net mvc(模式)和三层架构(BLL、DAL、Model)的联系与区别
原文地址:http://blog.csdn.net/luoyeyu1989/article/details/8275866 首先,MVC和三层架构,是不一样的. 三层架构中,DAL(数据访问层).BL ...
- asp.net mvc(模式)和三层架构(BLL、DAL、Model)的联系与区别 转载自:http://blog.csdn.net/luoyeyu1989/article/details/8275866
首先,MVC和三层架构,是不一样的. 三层架构中,DAL(数据访问层).BLL(业务逻辑层).WEB层各司其职,意在职责分离. MVC是 Model-View-Controller,严格说这三个加起来 ...
- 简单的三层asp.net webForm使用Ninject实现Ioc
简单的三层asp.net webForm使用Ninject实现Ioc 在asp.net webform下使用Ninject的简单过程. 首先建立个项目,如下图,简单三层(PS:UI层要同时引用BLL. ...
- MVC中Model BLL层Model模型互转
MVC中Model BLL层Model模型互转 一. 模型通常可以做2种:充血模型和失血模型,一般做法是模型就是模型,不具备方法来操作,只具有属性,这种叫做失血模型(可能不准确):具备对模型一定的简单 ...
- 简单解读linux的/proc下的statm、maps、memmap 内存信息文件分析【转】
转自:https://blog.csdn.net/sctq8888/article/details/7398776 转载自:http://hi.baidu.com/deep_pro/blog/item ...
- 三层架构中bll层把datatable转换为实体model的理解
看了很多人的项目,很多都是用到三层架构,其中BLL层中有一种将DataTable转换为实体的方法.一直没有明白为啥要这样做,今天特意去搜索了一下,如果没有答案我是准备提问,寻求解答了.还好找到一个相关 ...
- C#里面BLL、Model、DAL、UI层
C# 三层架构分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL)再加上实体类库(Model) 1.实体类库(Model),主要存放数据库中的表字段. 操作: (1)先建立实体类库Mode ...
随机推荐
- test20181018 B君的第三题
题意 B 君的第三题(shenyang) 题目描述 客似云来,万里无云 B 君得到了一个数组\(\{a_1,a_2,\dots,a_n\}\). B 君想通过修改让数组中个每对数都互质. 每次使一个数 ...
- nexus bower 集成使用
创建nexus bower proxy host 比较简单,如下图: 安装bower && bower-nexus resolver npm install -g bower-nexu ...
- FastAdmin 的 url 有一个 ref=addtabs 是怎么添加的?
FastAdmin 的 url 有一个 ref=addtabs 是怎么添加的? 在使用 FastAdmin 时你会发现 url 中有一个 ref=addtabs . 以下是 Karson 的解释 这个 ...
- Jmeter执行Java请求
Jmeter执行Java请求(QQ交流群:577439379) 一.打开Eclipse,创建一个Java工程 二.拷贝jmeter所依赖的jar包 将jmeter中,\lib\ext目录下的Apach ...
- centos 6.5 下 安装 git
2018-07-02 centos安装Git有两种方式,一种通过源安装,通过如下命今,即可一键安装成功: yum -y install git 但是通过源安装的Git,目前最高版本是1.7,想要使用更 ...
- oracle undo表空间大小修改
redhat:清空回收站 rm -rf /home/登录用户名/.Trash 例子:rm -rf /home/.Trash-root df命令可以显示目前所有文件系统的可用空间及使用情形: 例子:d ...
- 【linux】linux DD命令
Linux-dd命令详解 dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 例1:要把一张软盘的内容拷贝到另一张软盘上,利用/t ...
- eaccelerator详解
之前在看书的时候看到一个eaccelerator,以前也没用过 不知道是啥东东,不知道以后会用到不,先mark一下吧 eAccelerator是一个自由开放源码php加速器,优化和动态内容缓存,提高了 ...
- C# 通过二进制,将多个文件合并为一个。
C# 通过二进制,将多个文件合并为一个. /// <summary> /// 合并文件 /// </summary> /// <param name="strD ...
- genmotion 安装 app 报错 This application is't compatible with your mobile phone解决办法
请下载这个文件:http://pan.baidu.com/s/1jIyMNbg(一个zip包) 将这个zip包拖放到genymotion的屏幕中,安装,然后重启就行了 我安装的Samsung Gala ...