2016-11-28 2 views
9

Aktuell im Startup startup.cs, ich habe String meine SQL-Server wie folgt aussehen:Verbindungszeichenfolge von appsettings.json Mit

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

Wie verwende ich, was in meinem appsettings.json ist:

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

um so etwas wie dies in der neuen ASP.NET 1.0 CORE neue Setup aussehen wie folgt aussehen paramertized:

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

Al Also, wenn ich eine andere Datenbank für den Test und qa habe, wie kann ich die ASP.NET App wissen, eine Verbindung für jede Umgebung zu verwenden?

Meine Startklasse ist bereits an der Wurzel wie folgt definiert:

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(); 
} 

Antwort

10

Verwenden Sie eine korrekte Struktur für Verbindungszeichenfolgen:

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

Zugang in startup.cs:

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

I get: 'Fehler: Der Name" Configuration "existiert nicht im aktuellen Kontext". Welches Paket fehlt mir? EDIT: Es macht nichts, das ist ein Problem in der Vorabversion von v2. In 1.1 stabile Version ist es in Ordnung. – JedatKinports

+1

fehlt die IConfiguartionRoot-Methode in der Datei Startup.cs. Nennen Sie es Konfiguration, fügen Sie ein, und Sie sind fertig. –

Verwandte Themen