Wildfish框架实现原理之数据层

数据层的功能主要是封装一些列的数据类型等定义和表之间的关系。
1。DataSet封装
     优点:用于做CRUD的DataSet都可以通过工具生成,其实封装的信息不外乎是MainKey AddtionalKey等信息
     定义:
           每一个数据表一般都有一个PrimaryKey,
           对于单一的表,PrimaryKey=MainKey
           对于多表,主表的PrimaryKey=MainKey ,从表的PrimaryKey=MainKey+AddtionalKey
     原理:
           正常单表就不用说,只需要设定MainKey信息即可
           主从表,需要设定从表的AddtionalKey
           由于使用的不是DataSet的信息,所以,我们把这些信息存入了DataColumn.ExtendProperity里面
      缺点:    
            每次都需要用DataRow来操作,不能达到较好的类型校验。
            成批更新/删除的时候,对每一个更新/删除行都必须执行一次SQL来完成,比较消耗时间。
 2.UpdateObject/DeleteObject
      顾名思义,这是一个Update/Delete对象,他用来制定一个表能够更新/删除的数据,还可以增加固定的条件和可变的条件。
      我们构造了这样的对象就是为成批更新/删除为存在的,UpdateObject/DeleteObject提交的时候只会生成一个SQL

3。Entity
      存在的理由:
           用DataRow操作不方便,不能尽早的做类型和数据正确性校验。
      BaseDataSet有一个GetEntity SetEntity CreateEntity的方法,用于依据DataTable生成对应的简单实体。
      每一个实体可以看成一个行。
      这样我们就可以用 OrderEntity entity=orderDataSet.OrderDataTable.CreateEntity();
                                        entity.OrderID="xxxxxx";
                                         .........................
                                         orderDataSet.OrderDataTable.SetEntity(entity);
       比起DataRow来说,算是很方便了。
       而且对于主表的实体,DataSet全部获取了数据后,主表的实体还用有从表实体的集合。
        for(int i=0;i<orderEntity.OrderItemEntities.Count;i++)
        {
                      OrderItemEntity itemEntity=orderEntity.OrderItemEntities[i];
                      //do something
         }  
          

转载于:https://www.cnblogs.com/wildfish/archive/2006/02/11/328805.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值