繁体   English   中英

如何在ABP服务中获取DbContext?

[英]How to get DbContext in ABP service?

如何在应用程序层中获取DbContext实例?

我试过了:

1。

public class SeedingTestDataAppService : MyAppServiceBase
{
    private readonly MyDbContext _ctx;

    public SeedingTestDataAppService
    (
        MyDbContext context // Error
    )
    {
        _ctx = context;
    }
}

2。

public class SeedingTestDataAppService : MyAppServiceBase
{
    private readonly MyDbContext _ctx;

    public SeedingTestDataAppService
    (
        IDbContextProvider<MyDbContext> dbContextProvider
    )
    {
        _ctx = dbContextProvider.GetDbContext();
        // Error: unitOfWork is null
    }
}

我不擅长ABP。 我在哪里以及如何获取DbContext实例并将其注入?

不要在构造函数中调用dbContextProvider.GetDbContext()

_ctx实现为吸气剂,并在实际需要上下文的地方使用它。

public class SeedingTestDataAppService : MyAppServiceBase
{
    private MyDbContext _ctx => _dbContextProvider.GetDbContext();
    private readonly IDbContextProvider<MyDbContext> _dbContextProvider;

    public SeedingTestDataAppService(IDbContextProvider<MyDbContext> dbContextProvider)
    {
        _dbContextProvider = dbContextProvider;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM