实战 .Net 数据访问层 - 3

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

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

2.        Data Entity Façade

      

代码2:传统Data Entity

// Customer1:包含基本字段的Customer,属轻量级Data Entity

[Serializable()]

public class Customer1: xxx // xxx表示可能存在的基类

{

    public string Id;

    public string Name;

    public string Phone;

 

    public Customer1() {...}

}

 

// Customer2:从DataSet继承的Customer,又称Typed DataSet

[Serializable()]   

public class Customer2 : System.Data.DataSet

{

private CustomersDataTable tableCustomers;

private OrdersDataTable tableOrders;

 

private DataRelation relationFK_Orders_Customers;       

 

public Customer2() {...}

...

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

实际上,还有一些方案中可能采用了混合模式,比如:虽然从

DataSet继承(简单的可以直接从DataTable继承),但只实现Typed

DataSet的部分功能;或者,虽然包含了基本字段,但在内部实现了

数据填充或转换(在PetShop中,数据通过DALReader方式获取

并填充至Data Entity,并没有直接使用Data Entity进行转换);还有

一种最彻底的方式:直接采用Reader作为Data Entity进行Cross

Layer数据交换!这样,性能是最高了,但也给其它Layer开发人员

带来了一些不必要的烦恼L

 

对于只包含基本字段的Data Entity,使用起来非常简单,同时还

能以自己比较熟悉的方式编写程序,然而,付出的代价也不小:对

于比较复杂的Case,处理起来就不那么得心应手(即使Framework

提供了这些功能,却很不Ease of Use,这个可从Borland ECO所带

OCL中略知一二,.NET Framework ObjectSpaces中所带的OPath

也是半斤八两L)!

幸好,上述的缺点正是Typed DataSet之强项!

虽然体形庞大,但不失灵活,这就是ADO.NET带给我们的“礼

物”J不得不承认,用Typed DataSet虽然可能导致一系列问题(性

能,维护),但有时候我们还真是愿意体会这种“痛,并快乐着”的

感觉(当然了,这种感觉并不仅仅限于处理复杂Case时的Ease of Use

体验)!

Duwamish这样做了,作者的前一个项目也这样做了,您是不是

也准备这样做呢(系统架构师们不定又要大发雷霆了J)?

 

Ok,说这么多,就一个目的:当然是“隆重推出”作者自己“苦

心孤诣”多年却被“无数”系统架构师“否决”的Data Entity!实战

没机会,管它呢,先发个稿子到这里,待大家一起讨论讨论,看看

是否有出头之日J

 

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

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

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

实战.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 数据访问层 - 23

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

Asp.net mvc 数据访问层

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

实战 .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 数据访问层 - 4

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

实战 .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 数据访问层 - 3
举报原因:
原因补充:

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