这个Module通过建立一个MongoDbRepositoryBase<TEntity> 基类,封装了对MongoDb数据库的操作。 这个module通过引用MongoDB.Driver,MongoDB.Bson,MongoDB.Driver.Core,MongoDB.Driver.Legacy类库来操作MongoDb. 当项目不需要依赖于关系型数据库时,可以考虑引入MongoDB以及这个module。

ABP.MongoDb模块涉及到的接口和类如下,结构清晰,简单。

IAbpMongoDbModuleConfiguration/AbpMongoDbModuleConfiguration: 封装了ConnectionString和DatatabaseName两个属性,

AbpMongoDbModule:完成module的初始化:register AbpMongoDbModuleConfiguration 和 RegisterAssemblyByConvention (前面章节已有说明)

IMongoDatabaseProvider: 该接口定义了一个返回MongoDatabase对象的方法。

UnitOfWorkMongoDatabaseProvider:实现了IMongoDatabaseProvider接口,从MongoDbUnitOfWork实例中获取MongoDatabase对象。

MongoDbUnitOfWork:根据AbpMongoDbModuleConfiguration,创建MongoDatabase实例

MongoDbRepositoryBase<TEntity, TPrimaryKey>:针对MongoDb创建的仓储器,支持主键是泛型的Entity.

MongoDbRepositoryBase<TEntity>:针对MongoDb创建的仓储器,支持主键是int类型的Entity.

返回ABP源码分析系列文章目录

老大,你在第一篇,整体目录结构说MongoDB这个模块是个鸡肋,具体原因没说,这里也没写,到底是什么哇?

原因请参见: ABP源码分析十:Unit Of Work

【转】ABP源码分析二十九:ABP.MongoDb相关推荐

  1. 【转】ABP源码分析三十九:ABP.Hangfire

    ABP对HangFire的集成主要是通过实现IBackgroundJobManager接口的HangfireBackgroundJobManager类完成的. HangfireBackgroundJo ...

  2. 【转】ABP源码分析二十八:ABP.MemoryDB

    这个模块简单,且无实际作用(该模块用于支持ABP框架单元测试的).一般实际项目中都有用数据库做持久化,用了数据库就无法用这个MemoryDB 模块了.原因在于ABP限制了UnitOfWork的类型只能 ...

  3. 【转】ABP源码分析二十六:核心框架中的一些其他功能

    本文是ABP核心项目源码分析的最后一篇,介绍一些前面遗漏的功能 AbpSession AbpSession: 目前这个和CLR的Session没有什么直接的联系.当然可以自定义的去实现IAbpSess ...

  4. 【转】ABP源码分析二十五:EventBus

    IEventData/EventData: 封装了EventData信息,触发event的源对象和时间 IEventBus/EventBus: 定义和实现了了一系列注册,注销和触发事件处理函数的方法. ...

  5. 【转】ABP源码分析二十四:Notification

    NotificationDefinition: 用于封装Notification Definnition 的信息.注意和Notification 的区别,如果把Notification看成是具体的消息 ...

  6. 【转】ABP源码分析二十二:Navigation

    MenuDefinition:封装了导航栏上的主菜单的属性. MenuItemDefinition:封装了主菜单的子菜单的属性.子菜单可以引用其他子菜单构成一个菜单树 UserMenu/UserMen ...

  7. 【转】ABP源码分析二十:ApplicationService

    IApplicationService : 空接口,起标识作用.所有实现了IApplicationService 的类都会被自动注入到容器中.同时所有IApplicationService对象都会被注 ...

  8. ABP源码分析二十五:EventBus

    IEventData/EventData: 封装了EventData信息,触发event的源对象和时间 IEventBus/EventBus: 定义和实现了了一系列注册,注销和触发事件处理函数的方法. ...

  9. ABP源码分析二十八:ABP.MemoryDB

    这个模块简单,且无实际作用.一般实际项目中都有用数据库做持久化,用了数据库就无法用这个MemoryDB 模块了.原因在于ABP限制了UnitOfWork的类型只能有一个(前文以作介绍),一般用了数据库 ...

最新文章

  1. 虚拟机下运行linux通过nat模式与主机通信、与外网连接
  2. 赠书 | AI 还原宋代皇帝,原来这么帅?!
  3. LIbGDX 示例Tests详解一:AccelerometerTest
  4. scrum与第一次teamwork
  5. leetcode —— 面试题 17.08. 马戏团人塔
  6. javascript获取窗口和div位置
  7. javascript/jquery给动态加载的元素添加click事件
  8. 题目:[汪老师结婚]婚礼上的袭击
  9. 3dmax学习7——车削修改器
  10. Tomcat原理简述
  11. 【深度学习】基于TextCNN实现文本分类
  12. 高数 | 【不定积分】基础知识点梳理 及 经典例题、李林880求不定积分例题
  13. 用VB创建一个对象数组
  14. window10家庭版安裝docker遇到的問題【已解決】
  15. 教你如何正确的去校验身份证
  16. 7.微信小程序做按比例截取图片
  17. 玩转冷板式液冷 你需要一份靠谱的“设计参考”
  18. 配置openldap使用SSL连接
  19. GMSL部分问题解答/含官方FAE解答
  20. RK3368评测 RK3368方案 RK3368方案设计 RK3368性能如何 RK3368设计定制

热门文章

  1. GROUP BY 语句
  2. KindEditor富文本编辑器上传功能PHP语言报错问题
  3. Activity的四种启动模式-图文并茂
  4. Ubuntu apache 禁止目录浏览
  5. ecshop 函数列表大全
  6. 开源CRM Hipergate
  7. 请问如何让Dundas chart for asp.net控件产生的临时图片文件减少一些?
  8. 算法五——字符串匹配(上)
  9. [Leedcode][JAVA][第67题][二进制求和][位运算][字符串]
  10. 布尔运算_3dmax教程 - 布尔运算