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

这个模块简单,且无实际作用(该模块用于支持ABP框架单元测试的)。一般实际项目中都有用数据库做持久化,用了数据库就无法用这个MemoryDB 模块了。原因在于ABP限制了UnitOfWork的类型只能有一个(前文以作介绍),一般用了数据库的必然要注入efUnitOfWork. 而注入了efUnitOfWork就不能在注入MemoryDbUnitOfWork了。

 

MemoryDatabase:这是一个单例。ABP通过Dictionary<Type, object>+lock作为数据结构来实现内存数据库。其以entity的类型作为key,以entity list为value。

 

IMemoryDatabaseProvider: 接口返回MemoryDatabase。

UnitOfWorkMemoryDatabaseProvider : 实现IMemoryDatabaseProvider接口,通过调用ICurrentUnitOfWorkProvider的current UnitOfWork的Database获取MemoryDatabase。

MemoryDbUnitOfWork:实现IUnitOfWork接口。ABP在这个本模块中并没有实现事务逻辑。这个类在此模块中只用于返回MemoryDatabase对象。

 

MemoryRepository<TEntity, TPrimaryKey> : 继承自AbpRepositoryBase<TEntity, TPrimaryKey>,实现了Entity的CRUD操作。(这货居然不是线程安全的。证明这个模块无实际用途的第二个论点)

MemoryRepository<TEntity> : 其与MemoryRepository<TEntity, TPrimaryKey>差异就在于其支持的Entity主键是int类型。

 

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

分类: ABP

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

规定输出字段html,控制视图输出的包装字段内容的 HTML 标签《 Drupal 7 基础 (上) 》...

视图允许我们为分别定义用来包装字段内容&#xff0c;字段标签&#xff0c;还有字段内容和字段标签的 HTML 标签。这里我们先来看一下电影的标题字段&#xff0c;可以使用 Chrome 浏览器的开发者工具查看一下&#xff0c;鼠标放在其中的一个电影标题内容上&#xff0c;点击右键…

【转】ABP源码分析二十九:ABP.MongoDb

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

将自己的女朋友的话和视频做为启动音乐和启动动画(XP)

找到C:\windows\system32\oobe\images&#xff0c;可以看到3个wma文件&#xff0c;其中title.wma文件时xp的启动音乐&#xff0c;intro.wmv文件时xp的启动动画。哈哈&#xff0c;以后有女朋友了&#xff0c;只要替换一下文件&#xff0c;就可以把她的声音和视频设置在xp系统里。…

html防替换资源,Webpack中有没有替换html静态资源的插件

比如html文件中有如下代码<div><!-- /dev 是开发目录 --><img src"/dev/img.png"></div>然后经过处理后变成如下<div><!-- /static 是上线目录, a7l3k2n是图片的hash --><!-- 同时把img.png从/dev目录移动到/static目录 --&g…

【转】ABP源码分析三十:ABP.RedisCache

ABP 通过StackExchange.Redis类库来操作Redis数据库。 AbpRedisCacheModule&#xff1a;完成ABP.RedisCache模块的初始化(完成常规的依赖注入) AbpRedisCacheConfig&#xff1a;定义了connectionStringKey和databaseIdAppSetting的值。这两个值对象redis 在web.config中的key值…

平板可以看html文档吗,iPad如何看电脑里的视频 如何使用Ipad看电脑里的电影

电脑上的视频怎么在iPad上观看&#xff1f;如何在ipad播放电脑中的视频首先&#xff0c;看你的视频格式。如果是mp4&#xff0c;就可以直接放入ipad自带浏览器或者通过itunes直接传。其他格式的需要下载第三方播放器&#xff0c;目前使用较多的支持高清播放的有Oplayer&#xf…

【转】ABP源码分析三十一:ABP.AutoMapper

这个模块封装了Automapper,使其更易于使用。 下图描述了改模块涉及的所有类之间的关系。 AutoMapAttribute&#xff0c;AutoMapFromAttribute和AutoMapToAttribute&#xff1a;这三个attribute用于标注一个类到另外一个类的map方向。 AutoMapperHelper: 通过调用Automapper的A…

SQL语言的事务机制_转摘

什么是数据库事务  数据库事务是指作为单个逻辑工作单元执行的一系列操作。设想网上购物的一次交易&#xff0c;其付款过程至少包括以下几步数据库操作&#xff1a;   更新客户所购商品的库存信息    保存客户付款信息--可能包括与银行系统的交互    生成订单并且保…

html背景定位,css background-position center left right top bottom代表意思

background-position:center right这里center right分别代表什么,引入对图片背景定位介绍background-position是用于定位背景图片中对象中显示定位&#xff0c;比如图片作为背景时在对象内什么位置开始显示&#xff0c;显示样式等。比如让一个图片作为对象背景距离对象左边或右…

【转】ABP源码分析三十二:ABP.SignalR

Realtime Realtime是ABP底层模块提供的功能&#xff0c;用于管理在线用户。它是使用SignalR实现给在线用户发送通知的功能的前提 IOnlineClient/OnlineClient: 封装在线用户的信息 OnlineClientManager/IOnlineClientManager: 用于提供基本维护在线用户的方法。其内部维护了…

数据库人员面试:SQL Server常用测试题

题目1 问题描述: 为管理岗位业务培训信息&#xff0c;建立3个表: S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄 C (C#,CN ) C#,CN 分别代表课程编号、课程名称 SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩 1. 使用标准SQL嵌…

html5中将doctype分为几种,html5与html 4.01的区别 doctype几种分类及其不同

声明必须是 HTML 文档的第一行&#xff0c;位于 标签之前。声明不是 HTML 标签&#xff1b;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。在 HTML 4.01 中&#xff0c; 声明引用 DTD&#xff0c;因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则&#xf…

【转】ABP源码分析三十三:ABP.Web

ABP.Web模块并不复杂&#xff0c;主要完成ABP系统的初始化和一些基础功能的实现。 AbpWebApplication : 继承自ASP.Net的HttpApplication类&#xff0c;主要完成下面三件事 一&#xff0c;在Application_Start完成AbpBootstrapper的初始化。整个ABP系统的初始化就是通过AbpBoo…

c#程序打包,同时把netframework也打包进去

“打包,把netframework也打包进去&#xff0c;生成安装文件。 安装PluginInstaller.msi可以在你打包时&#xff0c;把.netframework框架打包进去&#xff0c;然后在安装软件时&#xff0c;提醒你是否要安装.netframework. 安装PluginInstaller.msi后,再打包编译&#xff0c;在你…

html的绝对定位脱离文档流吗,子元素设置绝对定位之后脱离文档流!

子元素设置绝对定位之后脱离文档流之后父容器宽高都为都不撑开了。 很多时候都是宽高都是0&#xff1b;子元素设置绝对定位如何让子元素自己撑开高度&#xff1f;下面的这个子元素设置绝对定位后&#xff0c;父元素宽高都为0 了。 如何让他自己撑开&#xff01;Document* {mar…

【转】ABP源码分析三十四:ABP.Web.Mvc

ABP.Web.Mvc模块主要完成两个任务&#xff1a; 第一&#xff0c;通过自定义的AbpController抽象基类封装ABP核心模块中的功能&#xff0c;以便利的方式提供给我们创建controller使用。 第二&#xff0c;一些常见的基础功能的实现。 AbpController&#xff1a;这是一个抽象基类…

html盒子全部蓝色,彻底弄懂CSS盒子模式之五

三、分析实现方法1&#xff0e;从上面的截图可以看到有一标题&#xff0c;标题下面是一个列表&#xff0c;所以很容易想到用标签和无序列表来做结构&#xff0c;标题是一块有背景的矩形块&#xff0c;文字白色&#xff0c;文字在矩形块中居中对齐&#xff0c;所以给标签加个宽度…

地球化学图解系统GCDPlot 0.33

地球化学 图解 系统GCDPlot 0.33发布&#xff0c;新增了Excel 2007支持。下载 地址&#xff1a;GCDPlot下载GCDPlot 是一个进行地球化学图解、CIPW计算的 Microsoft Excel VBA 程序&#xff0c;GCDPlot 可以使用 Excel 的数据以标准的 Excel 图表格式绘制各类地球化学图解&am…

微软认证及课程简写含义

AZ开头的都是Azure MB开头的课程都是Microsoft Dynamics 365&#xff08;早期叫Microsoft Business Solution&#xff09;的课程 MS开头的课程都是Microsoft 365的课程 M365主要是还集合了win10 autopilot这些 M365是指包括windows在内得所有得Microsoft产品做一站…

浅析PetShop程序中的购物车和订单处理模块(Profile技术,异步MSMQ消息)

对于Microsoft .net PetShop程序中的购物车和订单处理模块&#xff0c;文中主要分析两种技术的应用&#xff1a; 1. Profile技术在PetShop程序中用于三处&#xff1a; 1) 购物车ShoppingCart &#xff0d;下面的例子围绕购物车流程进行 2) 收藏WishList 3) 用户信息AccountI…