Erstellen einer Verbindungszeichenfolge und Arbeiten mit SQL Server LocalDB

von Rick Anderson

Hinweis

Eine aktualisierte Version dieses Tutorials ist hier mit der neuesten Version von Visual Studio verfügbar. Im neuen Tutorial wird ASP.NET Core MVC verwendet, der viele Verbesserungen gegenüber diesem Tutorial bietet.

Dieses Tutorial vermittelt Informationen zu ASP.NET Core MVC mit Controllern und Ansichten. Razor Pages ist eine neue Alternative in ASP.NET Core, einem seitenbasierten Programmiermodell, das das Erstellen der Webbenutzeroberfläche vereinfacht und produktiver macht. Es empfiehlt sich, dass Sie sich das Tutorial der Razor Pages vor der MVC-Version ansehen. Das Tutorial zu Razor Pages:

  • Ist einfacher zu befolgen.
  • Behandelt mehr Features.
  • Ist der bevorzugte Ansatz für die Entwicklung neuer Apps.

Erstellen einer Verbindungszeichenfolge und Arbeiten mit SQL Server LocalDB

Die MovieDBContext von Ihnen erstellte Klasse übernimmt die Aufgabe, eine Verbindung mit der Datenbank herzustellen und Objekte zu Datenbankdatensätzen zuzuordnen Movie . Eine Frage, die Sie sich stellen können, ist jedoch, wie Sie angeben, mit welcher Datenbank eine Verbindung hergestellt wird. Sie müssen nicht angeben, welche Datenbank verwendet werden soll. Entity Framework verwendet standardmäßig LocalDB. In diesem Abschnitt fügen wir explizit eine Verbindungszeichenfolge in der Web.config-Datei der Anwendung hinzu.

SQL Server Express LocalDB

LocalDB ist eine einfache Version der SQL Server Express-Datenbank-Engine, die bei Bedarf gestartet und im Benutzermodus ausgeführt wird. LocalDB wird in einem speziellen Ausführungsmodus von SQL Server Express ausgeführt, mit dem Sie mit Datenbanken als MDF-Dateien arbeiten können. In der Regel werden LocalDB-Datenbankdateien im Ordner App_Data eines Webprojekts gespeichert.

SQL Server Express wird nicht für die Verwendung in Produktionswebanwendungen empfohlen. LocalDB sollte insbesondere nicht für die Produktion mit einer Webanwendung verwendet werden, da sie nicht für die Verwendung mit IIS konzipiert ist. Eine LocalDB-Datenbank kann jedoch problemlos zu SQL Server oder SQL Azure migriert werden.

In Visual Studio 2017 wird LocalDB standardmäßig mit Visual Studio installiert.

Standardmäßig sucht Das Entity Framework nach einer Verbindungszeichenfolge mit dem Namen der Objektkontextklasse (MovieDBContext für dieses Projekt). Weitere Informationen finden Sie unter SQL Server Verbindungszeichenfolgen für ASP.NET-Webanwendungen.

Öffnen Sie die unten gezeigte Web.config Datei des Anwendungsstamms. (Nicht die Web.config-Datei im Ordner Ansichten .)

Screenshot: fenster

Suchen Sie das <connectionStrings> -Element:

Screenshot: Code und das Verbindungszeichenfolgenelement sind rot eingekreist.

Fügen Sie dem Element in der Web.config-Datei die <connectionStrings> folgende Verbindungszeichenfolge hinzu.

<add name="MovieDBContext" 
   connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf" 
   providerName="System.Data.SqlClient" 
/>

Das folgende Beispiel zeigt einen Teil der Web.config-Datei , in der die neue Verbindungszeichenfolge hinzugefügt wurde:

<connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031.mdf" providerName="System.Data.SqlClient" />
  <add name="MovieDBContext" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>

Die beiden Verbindungszeichenfolgen sind sehr ähnlich. Die erste Verbindungszeichenfolge trägt den Namen DefaultConnection und wird für die Mitgliedschaftsdatenbank verwendet, um zu steuern, wer auf die Anwendung zugreifen kann. Die hinzugefügte Verbindungszeichenfolge gibt eine LocalDB-Datenbank namens Movie.mdf an, die sich im Ordner App_Data befindet. In diesem Tutorial wird die Mitgliedschaftsdatenbank nicht verwendet. Weitere Informationen zu Mitgliedschaft, Authentifizierung und Sicherheit finden Sie in meinem Tutorial Erstellen einer ASP.NET MVC-App mit Authentifizierung und SQL-Datenbank und Bereitstellen in Azure App Service.

Der Name der Verbindungszeichenfolge muss mit dem Namen der DbContext-Klasse übereinstimmen.

using System;
using System.Data.Entity;

namespace MvcMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }

    public class MovieDBContext : DbContext
    {
        public DbSet<Movie> Movies { get; set; }
    }
}

Sie müssen die MovieDBContext Verbindungszeichenfolge nicht hinzufügen. Wenn Sie keine Verbindungszeichenfolge angeben, erstellt Entity Framework eine LocalDB-Datenbank im Benutzerverzeichnis mit dem vollqualifizierten Namen der DbContext-Klasse (in diesem Fall MvcMovie.Models.MovieDBContext). Sie können die Datenbank beliebig benennen, solange sie über verfügt . MDF-Suffix . Beispielsweise könnten wir der Datenbank den Namen MyFilms.mdf geben.

Als Nächstes erstellen Sie eine neue MoviesController Klasse, mit der Sie die Filmdaten anzeigen und Benutzern das Erstellen neuer Filmauflistungen ermöglichen können.