实战 .Net 数据访问层 - 2

原创 2004年05月07日 22:03:00

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

废话少说,先奉上代码若干,请大家一起参详参祥(以SQL Server所带Northwind为例):

 

代码1:如何调用DAF

// 创建Customer数据访问对象

CustomerDaf daf = new CustomerDaf();

 

// 根据ID返回Customer数据表

DataTable cust1 = (DataTable)daf.GetCustomerById("ALFKI");

 

// 根据名字返回匹配成功的Customer数据集

DataSet cust2 = (DataSet)daf.GetCustomers("ab");

 

// 根据名字返回Customer实体对象

MyCustomer cust3 = daf.GetCustomerByName("Maria Anders");

 

// 返回所有Customer数据列表,每个列表元素代表一个Customer实体对象

IList cust4 = daf.GetAllCustomers();

 

// 根据城市返回Customer数据读取器

DbDataReader cust5 = (DbDataReader)

daf.GetCustomerByCity("London");

// 将数据读取器数据转换为Customer数据列表,每个列表元素代表一个

//   Customer实体对象

IList cust5_list =

EntityConvert.ToList(cust5, typeof(MyCustomer));

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                    

 

 

 

 

 

 

 

 

代码1展示了通过DAF获取数据的几种基本操作,从中,我们不难看出:CustomerDaf就是传统意义上的数据访问类,而Customer则对应了数据实体类,这种方式也是现在大部分DAL中最普遍使用的模式。既然如此,那么为何还要在此不厌其烦的推出这个DAF(当然不仅仅是改个名字那么简单J),究竟意图何在?

 

       回答这个问题前,先告诉大家一个事实:

       虽然上面的代码总共返回了5种不同的Data Entity对象:DataTableDataSetMyCustomerIlistDbDataReader,但在Customer数据访问类“CustomerDaf”的定义中,所有方法的返回类型都是统一的MyCustomer!稍后,作者将对这段代码的实现部分进行分析。

      

Ok,让我们先从数据实体类入手,看看传统的Data Entity到底是怎么做的:

 

下一段:http://www.csdn.net/develop/Read_Article.asp?id=27545 

.net中的数据访问层的封装

当年.net项目中自己封装的数据访问层,个人感觉使用非常方便
  • kevin_xf
  • kevin_xf
  • 2016年12月05日 15:53
  • 811

实战 .Net 数据访问层 - 4

 代码3:我的Data Entity – 1,应用程序中的Data Entity// MyCustomer:包含基本字段的Customer,支持数据列表,从MyDef继承[Serializable()...
  • zhangxuefeng
  • zhangxuefeng
  • 2004年05月07日 22:03
  • 769

实战 .Net 数据访问层 - 23

 u     使用现成的框架Ø        首选当然是.NET Framework即将正式推出的ObjectSpaces!Ø        如果希望Total Solution,Borland EC...
  • zhangxuefeng
  • zhangxuefeng
  • 2004年05月09日 10:50
  • 1975

Asp.net mvc 数据访问层

理解了一些概念,本节开始尝试创建属于自己的数据访问层,说道数据访问层那必须有数据库咯(数据集合也算,此处以数据库为例),没有数据库就没有数据访问层。 1、先创建属于自己的数据库       打开已...
  • u013108485
  • u013108485
  • 2016年04月14日 16:19
  • 4940

实战.NET数据访问层

http://blog.csdn.net/zhangxuefeng/category/12675.aspx 
  • chenjinghua
  • chenjinghua
  • 2006年06月29日 19:05
  • 559

实战 .Net 数据访问层 - 22

 Ok,在结束整个“我的方案”之前,作者最后“献上”一段代码(是不是有点晕了?),希望能为您的DAF之旅划上一个圆满的句号J 代码17:通过DAF更新数据// 创建Customer数据访问对象Cust...
  • zhangxuefeng
  • zhangxuefeng
  • 2004年05月09日 10:49
  • 1900

实战 .Net 数据访问层 - 16

 5.       Cache Management首先说明一点,之所以将Cache Management单列出来,就是为了要说明数据缓存的重要性!在很多时候,这比撰写Data Access Logi...
  • zhangxuefeng
  • zhangxuefeng
  • 2004年05月09日 10:49
  • 2030

实战 .Net 数据访问层 - 21

 (2)    EntityConvert这个东东是模仿System.Convert的产物,刚开始没觉得咋样,用起来还真有点舍不得呢(本文开头的代码1中曾经使用过这个Utility)!不信,且看如下代...
  • zhangxuefeng
  • zhangxuefeng
  • 2004年05月09日 10:49
  • 1721

实战 .Net 数据访问层 - 6

    再回到最初的代码1,作者通过DAF的不同调用总共得到了5种不同的Data Entity对象:DataTable,DataSet,MyCustomer,Ilist,DbDataReader,奇怪...
  • zhangxuefeng
  • zhangxuefeng
  • 2004年05月07日 22:03
  • 818

实战 .Net 数据访问层 - 14

代码12:使用Data Access Logic进行Remoting调用 – 2,Remoting访问class CustomerDal_ORM : MyDal{    // 请注意:这个delega...
  • zhangxuefeng
  • zhangxuefeng
  • 2004年05月09日 10:49
  • 1874
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实战 .Net 数据访问层 - 2
举报原因:
原因补充:

(最多只允许输入30个字)