Meine Situation ist diesem Link ziemlich ähnlich oder zumindest ist mein Code ähnlich und ich versuche einen Weg zu finden, dieselbe Methode in der .NET Core Syntax anzuwenden.
Übergeben Sie die Verbindungszeichenfolge an Code-First DbContext
Mein spezifischer Code ist wie folgt:
%Vor%Ich bekomme eine Fehlermeldung, die besagt:
Fehler CS1503 Argument 1: Konvertierung von 'string' in 'Microsoft.EntityFrameworkCore.DbContextOptions' CompanyForms..NETCoreApp, Version = v1.0
nicht möglich
wenn ich über die Klammer in base("name=CompanyFormsContext")
oder base("name=" = connName)
gehe.
Wie wird diese Funktionalität in .NET Core richtig implementiert?
Bearbeiten:
Ich wollte teilen, dass ich die folgenden Informationen für die Datenbankverbindung in meiner appsettings.json Datei habe: (Ich habe jedoch keine Einstellungen in der startup.cs)
%Vor% und ich habe den folgenden Link DbContextOptions beim Start hinzufügen gefunden .cs nicht registrieren Datenspeicher in der Website und ich frage mich, ob eine einfache protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
genug sein wird, um meine Verbindung zu reparieren oder nicht?
Vom Link:
%Vor%Benötige ich diese Art von Service in meinem Startup.cs?
Eine weitere Option wäre, den Basiskonstruktor aufzurufen, der ein DbContextOptions-Objekt verwendet:
%Vor%Im Allgemeinen möchten Sie es beim Start aus der Konfiguration lesen und dann die Verbindungszeichenfolge verwenden, um einen Entity Framework DbContext-Service für Ihren Prozess zu konfigurieren.
1) Fügen Sie eine Zeile zu Ihrer appsettings.json hinzu:
%Vor%2) Lesen Sie die Zeile in der startup.cs-Klasse (nachdem die Startup-Methode aufgerufen wurde, um die Konfiguration zu erstellen - normalerweise in der ConfigureServices-Methode) wie folgt:
%Vor%3) Wenn Sie Entity Framework verwenden, fügen Sie einen Datenbankkontextdienst hinzu (MyDbContext ist die von EF generierte Kontextklasse). Außerdem möchten Sie der integrierten Abhängigkeitsinjektion mitteilen, wie Sie Ihren Datenbankkontext instanziieren:
%Vor%Wo IMyDbContext (vereinfacht gesagt) nur eine Schnittstelle ist, die Sie aus Ihrem MyDbContext extrahiert haben
4) Jetzt können Sie Ihren Controller so definieren, dass er einen MyDbContext übernimmt und der DI kümmert sich darum, ihn zu erstellen und ihn beim Aufruf des Controllers zu übergeben:
%Vor%IMO Best Practice:
füge zu deiner configuration.json hinzu:
%Vor%und initialisieren Abschnitt:
%Vor%Tags und Links .net c# entity-framework asp.net