Интерфейс внедрения зависимостей Net Core 3.0, полученный из dbcontext - PullRequest
1 голос
/ 26 мая 2020

Есть ли способ внедрения зависимостей в интерфейс DbContext класс является производным от Startup класса?

Ниже приведен DbContent класс

public partial class SRSDbContext : IdentityDbContext<SRSIdentityUser>, ISRSDbContext
{
    public SRSDbContext() 
    {

//...

в класс Startup я пытался использовать код

// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ISRSDbContext>(opts =>
        opts.UseSqlServer(Configuration.GetConnectionString("sqlConnection")));

Но интерфейс ISRSDbContext не был распознан в приведенной выше строке кода.

Мне нравится регистрировать ISRSDbContext для внедрение зависимости с использованием определенной строки подключения в файле AppsSetting.json

1 Ответ

1 голос
/ 26 мая 2020

Используйте перегрузку AddDbContext, которая принимает интерфейс и его производную реализацию

//...

services.AddDbContext<ISRSDbContext, SRSDbContext>(options =>
    options.UseSqlServer(Configuration.GetConnectionString("sqlConnection")));

//...

Если интерфейс зарегистрирован в отдельной библиотеке, также убедитесь, что на него ссылается библиотека создания кода звонок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...