【转】ABP源码分析二十九:ABP.MongoDb
这个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相关推荐
- 【转】ABP源码分析三十九:ABP.Hangfire
ABP对HangFire的集成主要是通过实现IBackgroundJobManager接口的HangfireBackgroundJobManager类完成的. HangfireBackgroundJo ...
- 【转】ABP源码分析二十八:ABP.MemoryDB
这个模块简单,且无实际作用(该模块用于支持ABP框架单元测试的).一般实际项目中都有用数据库做持久化,用了数据库就无法用这个MemoryDB 模块了.原因在于ABP限制了UnitOfWork的类型只能 ...
- 【转】ABP源码分析二十六:核心框架中的一些其他功能
本文是ABP核心项目源码分析的最后一篇,介绍一些前面遗漏的功能 AbpSession AbpSession: 目前这个和CLR的Session没有什么直接的联系.当然可以自定义的去实现IAbpSess ...
- 【转】ABP源码分析二十五:EventBus
IEventData/EventData: 封装了EventData信息,触发event的源对象和时间 IEventBus/EventBus: 定义和实现了了一系列注册,注销和触发事件处理函数的方法. ...
- 【转】ABP源码分析二十四:Notification
NotificationDefinition: 用于封装Notification Definnition 的信息.注意和Notification 的区别,如果把Notification看成是具体的消息 ...
- 【转】ABP源码分析二十二:Navigation
MenuDefinition:封装了导航栏上的主菜单的属性. MenuItemDefinition:封装了主菜单的子菜单的属性.子菜单可以引用其他子菜单构成一个菜单树 UserMenu/UserMen ...
- 【转】ABP源码分析二十:ApplicationService
IApplicationService : 空接口,起标识作用.所有实现了IApplicationService 的类都会被自动注入到容器中.同时所有IApplicationService对象都会被注 ...
- ABP源码分析二十五:EventBus
IEventData/EventData: 封装了EventData信息,触发event的源对象和时间 IEventBus/EventBus: 定义和实现了了一系列注册,注销和触发事件处理函数的方法. ...
- ABP源码分析二十八:ABP.MemoryDB
这个模块简单,且无实际作用.一般实际项目中都有用数据库做持久化,用了数据库就无法用这个MemoryDB 模块了.原因在于ABP限制了UnitOfWork的类型只能有一个(前文以作介绍),一般用了数据库 ...
最新文章
- 虚拟机下运行linux通过nat模式与主机通信、与外网连接
- 赠书 | AI 还原宋代皇帝,原来这么帅?!
- LIbGDX 示例Tests详解一:AccelerometerTest
- scrum与第一次teamwork
- leetcode —— 面试题 17.08. 马戏团人塔
- javascript获取窗口和div位置
- javascript/jquery给动态加载的元素添加click事件
- 题目:[汪老师结婚]婚礼上的袭击
- 3dmax学习7——车削修改器
- Tomcat原理简述
- 【深度学习】基于TextCNN实现文本分类
- 高数 | 【不定积分】基础知识点梳理 及 经典例题、李林880求不定积分例题
- 用VB创建一个对象数组
- window10家庭版安裝docker遇到的問題【已解決】
- 教你如何正确的去校验身份证
- 7.微信小程序做按比例截取图片
- 玩转冷板式液冷 你需要一份靠谱的“设计参考”
- 配置openldap使用SSL连接
- GMSL部分问题解答/含官方FAE解答
- RK3368评测 RK3368方案 RK3368方案设计 RK3368性能如何 RK3368设计定制
热门文章
- GROUP BY 语句
- KindEditor富文本编辑器上传功能PHP语言报错问题
- Activity的四种启动模式-图文并茂
- Ubuntu apache 禁止目录浏览
- ecshop 函数列表大全
- 开源CRM Hipergate
- 请问如何让Dundas chart for asp.net控件产生的临时图片文件减少一些?
- 算法五——字符串匹配(上)
- [Leedcode][JAVA][第67题][二进制求和][位运算][字符串]
- 布尔运算_3dmax教程 - 布尔运算