基于EF4.1的异构数据库访问组件(三)

接上一篇

基于EF4.1的异构数据库访问组件(二)中已完成了该组件的核心部分:

  • IDbContextStorage – DbContext仓库
  • IDbContextBuilder   - DbContext动态组建器
  • IDbContextManager – DbContext管理器

接下来,向大家介绍一下第一篇所说的,给上层提供统一的持久数据接口。

IRepository<T>

     IRepository<T>就是需要提供给上层的统一数据持久接口,这里大家可以找到很多的例子,不多说,直接上类图:

     ClassDiagram1

    上图中有以下几个主要部分:

  • IRepository<T> - 数据持久接口
  • SortOrder枚举   - 排序方式枚举
  • IUnitOfWork     - 工作单元接口
  • UnitOfWork      - 工作单元实现类
  • EFRepository<T> - 数据持久实现基类

    关于IUnitOfWork与IRepository<T>这块大家可以在园子里面找找文章,这里需要说明的是——我们怎样去确定哪个业务对象属于哪个数据库呢,关键在于EFRepository<T>这个基类的构造函数中:

 
  

PagedList<T>分页

     在IRepository<T>中,我们提供了获取数据分页的方法。我采用的方法是使用PagedList<T>容器及扩展方法来实现的,EFRepository<T>的实现代码:

     下面来看看PagedList<T>及扩展方法ToPagedList

 
  

     

关于排序

      直接新增扩展方法OrderBy

 
  

多条件动态查询

    参考:http://blogs.msdn.com/b/meek/archive/2008/05/02/linq-to-entities-combining-predicates.aspx   

    呵呵,差不多这个组件就是这样子了,我会把代码作一个整理放到Codeplex上面,到时有需要的朋友请关注,谢谢!   

转载于:https://www.cnblogs.com/gejin/archive/2011/10/22/2221424.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值