abp+dapper+mysql,尝试设置基于Dapper的数据访问层。 ABP.Dapper文档令人困惑且不完整...

I'm trying to set up a simple DAL that will return a List of typed objects. Pretty standard data repository stuff. I downloaded all of ABP's code from GitHub, built the DLLs for Abp.Dapper and Abp.EntityFrameworkCore and started following the instructions on this page:

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

But I can't even get past step one of this. This code doesn't compile because it doesn't know what SampleApplicationModule is. But there's no guidance in these instructions as to what that is supposed to be.

How am I supposed to use Abp's libraries? I'm lost. Can someone please let me know the minimum number of things I need to do in order to wire up my database to Abp's library and query for a List of typed objects?

Code from Abp's Dapper Integration documentation:

[DependsOn(

typeof(AbpEntityFrameworkCoreModule),

typeof(AbpDapperModule)

)]

public class MyModule : AbpModule

{

public override void Initialize()

{

IocManager.RegisterAssemblyByConvention(typeof(SampleApplicationModule).GetAssembly());

}

}

解决方案

if you are confused what to write for SampleApplicationModule use the below code

Module Registration

[DependsOn(

typeof(AbpEntityFrameworkModule),

typeof(AbpKernelModule),

typeof(AbpDapperModule)

)]

public class SampleApplicationModule : AbpModule

{

public override void Initialize()

{

IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());

}

}

Usage

public class SomeDomainService : ITransientDependency

{

private readonly IDapperRepository _animalDapperRepository;

private readonly IRepository _animalRepository;

private readonly IDapperRepository _personDapperRepository;

private readonly IRepository _personRepository;

private readonly IUnitOfWorkManager _unitOfWorkManager;

public SomeDomainService(

IUnitOfWorkManager unitOfWorkManager,

IRepository personRepository,

IRepository animalRepository,

IDapperRepository personDapperRepository,

IDapperRepository animalDapperRepository)

{

_unitOfWorkManager = unitOfWorkManager;

_personRepository = personRepository;

_animalRepository = animalRepository;

_personDapperRepository = personDapperRepository;

_animalDapperRepository = animalDapperRepository;

}

public void DoSomeStuff()

{

using (IUnitOfWorkCompleteHandle uow = _unitOfWorkManager.Begin())

{

_personRepository.Insert(new Person("Oğuzhan"));

_personRepository.Insert(new Person("Bread"));

_animalRepository.Insert(new Animal("Bird"));

_animalRepository.Insert(new Animal("Cat"));

_unitOfWorkManager.Current.SaveChanges();

Animal animal = _animalRepository.FirstOrDefault(x => x.Name == "Bird");

Person person = _personDapperRepository.Get(1);

int personCount = _personDapperRepository.Count(x => x.Name == "Oğuzhan");

List persons = _animalDapperRepository.GetList(x => x.Name.StartsWith("O")).ToList();

uow.Complete();

}

}

}

PS: Abp.Dapper integration is implemented by the community.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值