Два соединения ASP.NET Core, EF core, ошибка ArgumentNullException - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть два проекта в моем решении, один из которых - регистрация Identity, а другой - проект ASP.NET Core MVC. Я добавил еще одно соединение для удостоверения в соответствии с официальной документацией для строк соединения в appsettings.json. Но у меня возникла исключительная ситуация System.ArgumentNullException ', возникшая в Microsoft.EntityFrameworkCore.SqlServer.dll в методе ConfigureServices.

Мой измененный appsettings.json

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=employeedb;Trusted_Connection=True;MultipleActiveResultSets=true",
    "LocalConnection": "Server=(localdb)\\mssqllocaldb;Database=employeedb;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

Метод ConfigureServices

public void ConfigureServices(IServiceCollection services)
    {
        services
            .AddEntityFrameworkSqlServer()
            .AddDbContext<EmployeeContext>(options => {
                options.UseSqlServer(Configuration["Data:DefaultConnection"]);
            })
        .AddDbContext<ApplicationContext>(options => {
            options.UseSqlServer(Configuration["Data:LocalConnection"]); 
        });

        var mappingConfig = new MapperConfiguration(mc =>
        {
            mc.AddProfile(new MappingProfile());
        });
        IMapper mapper = mappingConfig.CreateMapper();
        services.AddSingleton(mapper);

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        services.AddIdentity<User, IdentityRole>()
            .AddEntityFrameworkStores<ApplicationContext>();
        services.AddScoped<IEmployeeService, EmployeeService>();
    }

Исключение в методе ConfigureServices

enter image description here

Как получить две строки подключения, работающие в методе ConfigureServices?

1 Ответ

1 голос
/ 10 апреля 2019

В вашем файле appsettings.json нет элемента Data:DefaultConnection.Вместо этого попробуйте использовать Configuration["ConnectionStrings:DefaultConnection"].Это также относится к LocalConnection.

Еще проще использовать метод расширения GetConnectionString().Например:

Configuration.GetConnectionString("DefaultConnection")
...