2016-11-28 10 views
9

В настоящее время в запуске, у меня есть строка SQL Server выглядит как это:Использование строки соединения с appsettings.json для startup.cs

public void ConfigureServices(IServiceCollection services) 
{ 
    var connection = @"Server=servername;Database=database;Trusted_Connection=True;MultipleActiveResultSets=true"; 
    services.AddDbContext<CRAMSContext>(options => options.UseSqlServer(connection)); 
} 

Как использовать то, что в моем appsettings.json:

{ 
    "Data": { 
    "DefaultConnection": { 
    "ConnectionString": "Data Source=server;Initial Catalog=database;Trusted_Connection=True;MultipleActiveResultSets=true" 
    }, 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
     "Default": "Debug", 
     "System": "Information", 
     "Microsoft": "Information" 
    } 
    } 
} 

чтобы выглядеть следующим образом в новом ASP.NET 1.0 CORE новой установки, чтобы выглядеть paramertized так:

public void ConfigureServices(IServiceCollection services) 
{ 
    var connection2 = new SqlConnection connectionString; 
    services.AddDbContext<CRAMSContext>(options => options.UseSqlServer(connection2)); 
} 

Al поэтому, если у меня есть другая база данных для теста и qa, как я могу позволить приложению ASP.NET использовать соединение для каждой среды?

Мой класс запуска уже определен в корне так:

public Startup(IHostingEnvironment env) 
{ 
    var builder = new ConfigurationBuilder() 
     .SetBasePath(env.ContentRootPath) 
     .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) 
     .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) 
     .AddEnvironmentVariables(); 
    Configuration = builder.Build(); 
} 

ответ

10

Использование соответствующей структуры для соединения строк:

{ 
    "ConnectionStrings": { 
    "DefaultConnection": "xxx" 
    } 
} 

доступа в startup.cs:

services.AddDbContext<ApplicationDbContext>(options => 
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); 
+0

I get: 'Ошибка: имя« Конфигурация »не существует в текущем контексте». Какой пакет мне не хватает? EDIT: Ничего, это проблема в предварительном выпуске v2. В версии 1.1 стабильной версии все в порядке. – JedatKinports

+1

в файле Startup.cs отсутствует метод IConfiguartionRoot. Назовите его конфигурацией, добавьте доступ к ней, и все готово. –

 Смежные вопросы

  • Нет связанных вопросов^_^