Speichern / Abrufen der ConnectionString aus der App.json in ASP.net Core 2 MVC-app
Ich bin auf der Suche nach der best-practice - Weg zum speichern einer Verbindungszeichenfolge in appsettings.json in einem .net Core 2 MVC app (wie Sie im web.config in MVC 5).
Möchte ich Dapper nicht EF (fand ich viele EF Beispiele).
Etwas wie dieses:
{
"ConnectionStrings": {
"myDatabase": "Server=.;Database=myDatabase;Trusted_Connection=true;"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
Sicherlich gibt es viele Beispiele online? Ich kann nichts finden, die ist für .net core 2.0.
Einige Dinge haben sich geändert zwischen 1 und 2 und ich möchte sicherstellen, dass ich mit der version 2 best practices.
Habe ich dies gefunden - aber es scheint zu werden .net core 1:
Visual Studio 2017 - MVC-Core - Teil 05 - Verbindungszeichenfolge aus appsettings.json
Diese verwendet Schlüssel-Wert-paar appsettings - nicht die connectionstrings:
Lesen AppSettings in ASP.NET Core 2.0
Wieder ist es unklar, ob dies ist .net Core 1 oder 2: Net-Core-Verbindungszeichenfolge Dapper visual studio 2017
- Verwenden Sie einfach
"ConnectionStrings": {...}
undConfigurationExtensions.GetConnectionString
- dies hat sich nicht verändert und folgt einem offensichtlichen übereinkommen (Meinung basiert natürlich). - Vielen Dank - ich nicht wirklich Folgen, keine chance, diese in eine detailliertere Antwort?
- Nichts hat sich verändert über diese seit Core zuerst eingeführt wurde. Obwohl in der Praxis, Sie würden die meisten wahrscheinlich, Umgebungsvariablen zu verwenden, oder sowas wie Azure Key Vault, anstatt appsettings.json, so dass Sie nicht verpflichten, die tatsächlichen Anmeldeinformationen zu Ihrem source-code. Es ist gut für die lokale Entwicklung Verbindungszeichenfolgen obwohl.
- Interessant - auch wenn die Verbindungszeichenfolge nicht enthalten Anmeldeinformationen (was nicht in meinem Fall) - nur Datenbank-name?
- Ich fand das die mehr gerade nach vorne- stackoverflow.com/a/51780754/1042288
Du musst angemeldet sein, um einen Kommentar abzugeben.
Definieren Sie Ihre connection-string(s) in
appsettings.json
Lesen Sie dessen Wert beim Start
Wenn Sie Folgen Sie der Konvention und definieren Sie Ihre Verbindungszeichenfolge(N) unter
connectionStrings
verwenden, können Sie die extension-MethodeGetConnectionString()
Lesen seinen Wert.Verwenden IDbConnection im repository?
Müssen nur den connection-string in ein POCO?
Könnten Sie die Optionen Muster.
Definieren Sie eine Klasse, die exakt die
JSON
Objekt-Struktur in appsettings.jsonRegister Konfiguration auf Start
Erhalten die accessor in Ihrem POCO -
Hinweise:
customDbConnection
definiert in den appsettings.json unter "connectionStrings", um die load-Werte unter den Abschnitt in der configuration-Klasse (ConnectionStringConfig
in meinem Beispiel), dass die configuration-Klasse braucht, um eine EigenschaftCustomDbConnection
definiert.new()
überall, stecken Sie in Ihre fav. 3rd-party-DI-Bibliothek, oder halten, Fragen sich, warum Sie haben, Schnittstellen zu nutzen. Aber die Vorteile kommen, wenn Sie tun müssen, unit-Tests (ich weiß... die kleinen Projekte brauchen keine Prüfungen) und müssen nicht selbst zu entsorgen Instanzen. Es gibt so viele schöne things.Net Kern bringt. Vertrauen Sie mir. Sobald Sie es meistern, die Sie nicht wollen, um zurück zu MVC 5 und web.config.Setzen Sie einfach, wie unten gezeigt, in appsettings.json.
Starten.cs Holen, wie unten erwähnt:
Dependency injection zu injizieren Konfiguration in Steuerung wie unten erwähnt: