码迷,mamicode.com
首页 > 其他好文 > 详细

Lind.DDD.Repositories.EF层介绍

时间:2017-11-11 23:47:48      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:dbn   rdm   awd   dvr   开发人员   lcs   结构图   rto   containe   

仓储大叔好了相赠 网上2500元 跟谁学课堂 C#视频 ddd领域驱动架构设计视频 还赠送ABP视频两套

qq 2589406800 qq1399494644 qq2128543647 qq2890083872 qq3235634116 qq3381945576 qq2171713479
源代码框架lind.ddd(后台管理系统,电商系统,API,SSO,xamarin,ko,各组件单元测试) 赠送ABP视频
+lindCore源碼+LindAgility(敏捷框架) (60元)

Lind.DDD.Repositories.EF以下简称Repositories.EF,之所以把它从Lind.DDD中拿出来,完全出于可插拔的考虑,让大家都能休会到IoC的魅力,用到哪种方法持久化,就将那个DLL放到应用程序中,完全不需要把所有持久化方式耦合到一个项目里,这也是遵循了OCP的原则,对扩展是开放的,即你可以添加其它的持久化方式,在新的项目里;而不要在原有的项目中进行代码的修改.

Repositories.EF做为数据持久化的一种方式,它直接继承了Lind.DDD.IRepositories接口模块,它实现了IRepository,IExtensionRepository和IOrderableRepository等仓储操作,开发人员在使用时,可以根据自己的需要去声明不同的接口变量,以最小程度的使用它,而不是所以时候都使用IExtensionRepository的完整接口,如你的类中只用到了实体的添加,那你完全可以把对象声明成IRepository基本仓储,这样你的使用时,也更加清楚.

Repositories.EF项目结构很简单,只有一个Repository的实现,看一下结构图

技术分享

它内部使用了IExtensionRepository接口,由于IExtensionRepository同时继承了IRepository和IOrderableRepository,所以,EF在实现它时,这两个基接口也会现时被实现.

技术分享

其实对于方法内部的实现,大叔之前的文章中已经介绍很多了,大叔可以自已进行查阅,之后这个Repositories.EF仓储在实现项目中不会出现,它只会通过IoC在程序运行时动态生产出来,这点大叔要清楚,不要把Repositories.EF引用到你的项目中使用,这样你的项目将会变得非常僵化,很被动,持久化无法自动切换,这点要注意!

在具体项目中使用时,我们可以通过web.config去定义你持久化的方式,在程序使用时,直接用Lind.DDD.IoC.ServiceLocator服务定位器即可.

技术分享
        IExtensionRepository<Task_Info> taskRepository;
        public UserService()
        {          
            taskRepository = ServiceLocator.Instance.GetService<IExtensionRepository<Task_Info>>();
            taskRepository.SetDataContext(Db);
        }
技术分享
技术分享
  <unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
    <container>
      <!--泛型类型注入-->
      <register type="Lind.DDD.IRepositories.IRepository`1,Lind.DDD" mapTo="Lind.DDD.Repositories.EF.EFRepository`1, Lind.DDD.Repositories.EF" />
      <register type="Lind.DDD.IRepositories.IExtensionRepository`1,Lind.DDD" mapTo="Lind.DDD.Repositories.EF.EFRepository`1, Lind.DDD.Repositories.EF" />
    </container>
  </unity>
技术分享

Lind.DDD.Repositories.EF层介绍

标签:dbn   rdm   awd   dvr   开发人员   lcs   结构图   rto   containe   

原文地址:http://www.cnblogs.com/lindddd/p/7820318.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!