首先看下官网的介绍:

https://aspnetboilerplate.com/Pages/Documents/Dapper-Integration

中文翻译:

介绍

Dapper是.NET的对象关系映射器(ORM)。该Abp.Dapper包装简单集成到精致小巧ASP.NET样板。它与EF 6.x,EF Core或NHibernate一起作为辅助ORM提供程序。

安装

在开始之前,您需要将 Abp.Dapper和EF Core,EF 6.x或NHibernate ORM NuGet包安装到您要使用的项目中。

模块注册

首先,您需要在模块上为AbpDapperModule添加DependsOn属性:

[DependsOn(typeof(AbpEntityFrameworkCoreModule),typeof(AbpDapperModule)
)]
public class MyModule : AbpModule
{public override void Initialize(){IocManager.RegisterAssemblyByConvention(typeof(SampleApplicationModule).GetAssembly());}
}

请注意,应该在EF Core依赖项之后添加AbpDapperModule依赖项。

表映射的实体

您可以配置映射。例如,Person类映射到以下示例中的 Persons表:

public class PersonMapper : ClassMapper<Person>
{public PersonMapper(){Table("Persons");Map(x => x.Roles).Ignore();AutoMap();}
}

您应该设置包含映射器类的程序集。例:

[DependsOn(typeof(AbpEntityFrameworkModule),typeof(AbpDapperModule)
)]
public class MyModule : AbpModule
{public override void Initialize(){IocManager.RegisterAssemblyByConvention(typeof(SampleApplicationModule).GetAssembly());DapperExtensions.SetMappingAssemblies(new List<Assembly> { typeof(MyModule).GetAssembly() });}
}

用法

注册AbpDapperModule后,您可以使用Generic IDapperRepository接口(而不是标准IRepository)来注入dapper存储库。

public class SomeApplicationService : ITransientDependency
{private readonly IDapperRepository<Person> _personDapperRepository;private readonly IRepository<Person> _personRepository;public SomeApplicationService(IRepository<Person> personRepository,IDapperRepository<Person> personDapperRepository){_personRepository = personRepository;_personDapperRepository = personDapperRepository;}public void DoSomeStuff(){var people = _personDapperRepository.Query("select * from Persons");}
}

您可以在同一个事务中同时使用EF和Dapper存储库!


官网上说的有点模糊,这里整理下

1、在application和efcore层添加nuget包Abp.Dapper

2、在EntityFrameworkCore层的EntityFrameworkCore->**EntityFrameworkModule类中添加以下代码,对应官网文档的【模块注册】

3、设置包含映射器类的程序集

DapperExtensions.DapperExtensions.SetMappingAssemblies(new List<Assembly> { typeof(WisdomCloudEntityFrameworkModule).GetAssembly() });

如果是mysql,必须添加下面这句

//使用mysql必须修改,默认是sqlserver
DapperExtensions.DapperExtensions.SqlDialect = new MySqlDialect();

4、EntityFrameworkCore添加下面文件夹来添加映射关系,对应官网文档【表映射的实体】

5、在application层就可以通过IDapperRepository使用了

abp集成abp.Dapper相关推荐

  1. ABP入门系列(17)——使用ABP集成的邮件系统发送邮件

    1.Abp集成的邮件模块是如何实现的 ABP中对邮件的封装主要集成在Abp.Net.Mail和Abp.Net.Mail.Smtp命名空间下,相应源码在此. 分析可以看出主要由以下几个核心类组成: Em ...

  2. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十四节--后台工作者HangFire与ABP框架Abp.Hangfire及扩展...

    返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 HangFire与Quartz.NET相比主要是HangFire的内置提供集成化的控制台,方便后台查看及监控,对于 ...

  3. abp Volo.Abp.AbpException: Could not find the bundle file ‘/libs/abp/core/abp.css‘ for the bundle ‘B

    项目场景:学习 abp 的ERROR 提示:这里简述项目相关背景: Volo.Abp.AbpException: Could not find the bundle file '/libs/abp/c ...

  4. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十七节--Quartz与ABP框架Abp.Quar...

    ABP+AdminLTE+Bootstrap Table权限管理系统一期 Github:https://github.com/Jimmey-Jiang/ABP-ASP.NET-Boilerplate- ...

  5. abp+dapper+mysql_abp集成abp.Dapper

    首先看下官网的介绍: https://aspnetboilerplate.com/Pages/Documents/Dapper-Integration 中文翻译: 介绍 Dapper是.NET的对象关 ...

  6. Abp集成Swagger的最佳实践

    1.在项目中添加nuget包 Abp.Web.Api.SwaggerTool 2.在项目Abp模块的DependsOn添加AbpWebApiSwaggerToolModule Run It,启动项目, ...

  7. 企业级工作流解决方案(十五)--集成Abp和ng-alain--Abp其他改造

    配置功能增强 Abp定义了各种配置接口,但是没有定义这些配置数据从哪里来,但是管理配置数据对于一个应用程序来说,是必不可少的一件事情. .net的配置数据管理,一般放在Web.config文件或者Ap ...

  8. 企业级工作流解决方案(十)--集成Abp和ng-alain--权限系统

    权限系统 应用系统离不开权限控制,权限中心不一定能抽象出所有的业务场景,这里定义的权限系统不一定能够满足所有的场景,但应该可以满足多数的业务需求. Abp的zero项目也定义了权限相关的表,但里面很多 ...

  9. Abp集成Quartz.net记录

    编写了一个任务分配系统,基本流程是任务发起者发起一个周期任务,指定好周期,接收人定期收到任务.刚开始使用的是Hangfire,很容易跑起来,还自带一个管理控制台.跑起来后发现Hangfire有一些不足 ...

最新文章

  1. 分享Silverlight/Windows8/WPF/WP7/HTML5一周学习导读(5月6日-5月12日)
  2. 学习笔记(1)centos7 下安装nginx
  3. oracle删除本地文件权限,使用 UNIX 权限保护文件
  4. 200行代码写一个简易的dva
  5. JAVA多线程和并发基础面试问答(转载)
  6. python 顺序表
  7. 自定义Excel导出简易组件
  8. 解决-硬盘安装器/GHOSTERR/WINPE/FreeLaunchBar问题
  9. curl怎么输出赋值_伺服电动缸怎么控制?
  10. 上twitter_如何在Twitter上找到重大新闻
  11. Vim编辑器的使用之替换
  12. Macbook双系统 10.11及Ubuntu
  13. 系统降级熔断限流和排队
  14. 网络安全有哪些岗位,如何成为一位优秀的网络安全工程师?
  15. ajax用户名注册自动刷新,ajax+jsp实现 无刷新页面下注册时检测用户名是否已存在...
  16. ABP VNext学习日记20
  17. Oracle日记账如何设置审核,手工日记账操作规范及常见问题分析
  18. 写作软件评测iA Writer、Ulysses、Effie、Typora、Writeathon、Bear
  19. php画布生成图片/证书/卡片等实例
  20. AE(ArcGIS Engine)的安装与配置(附加ArcGIS安装及所需安装包)

热门文章

  1. 解惑一---大数据与Oracle数据库
  2. 手撕BP网络,你值得拥有!
  3. 日常坚持记账,简单好用的记账本分享给你
  4. python解包(Unpacking)
  5. solr的DIH操作同步mysql数据
  6. 【leetcode】1849. 将字符串拆分为递减的连续值
  7. PHP 换行符的一些说明
  8. remote couldn‘t create file: Read-only file system (remount failed)解决方法
  9. intellij idea 2016破解方法
  10. 《计算机图形学》实验报告区域填充扫描线算法