Freigeben über


Erstellen einer Verbindungszeichenfolge und Arbeiten mit SQL Server LocalDB

von Rick Anderson

Hinweis

Eine aktualisierte Version dieses Lernprogramms ist hier mit der neuesten Version von Visual Studio verfügbar. Das neue Lernprogramm verwendet ASP.NET Core MVC, das viele Verbesserungen in diesem Lernprogramm bietet.

In diesem Lernprogramm lernen Sie ASP.NET Core MVC mit Controllern und Ansichten. Razor Pages ist eine neue Alternative in ASP.NET Core, einem seitenbasierten Programmiermodell, das das Erstellen von Web-UI erleichtert und produktiver macht. Wir empfehlen Ihnen, das Lernprogramm "Razor Pages " vor der MVC-Version zu testen. Das Razor Pages-Tutorial:

  • Es ist einfacher zu folgen.
  • Umfasst mehr Funktionen.
  • 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 behandelt die Aufgabe, eine Verbindung mit der Datenbank herzustellen und Objekte Datenbankdatensätzen zuzuordnen Movie . Eine Frage, die Sie möglicherweise stellen, 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 des SQL Server Express-Datenbankmoduls, das 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 Arbeit 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 Anwendungsstammdatei Web.config Datei. (Nicht die Web.config Datei im Ordner "Ansichten ".)

Screenshot des Fensters

Suchen Sie das <connectionStrings> Element:

Screenshot, der den Code und das Verbindungselement der Zeichenfolge zeigt, ist rot eingekreist.

Fügen Sie die folgende Verbindungszeichenfolge in das -Element der <connectionStrings> Datei ein.

<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 mit einer neu hinzugefügten Verbindungszeichenfolge.

<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 wird benannt DefaultConnection und für die Mitgliedschaftsdatenbank verwendet, um zu steuern, wer auf die Anwendung zugreifen kann. Die hinzugefügte Verbindungszeichenfolge gibt eine LocalDB-Datenbank mit dem Namen Movie.mdf im Ordner App_Data an. Wir verwenden die Mitgliedschaftsdatenbank in diesem Lernprogramm nicht, weitere Informationen zu Mitgliedschaft, Authentifizierung und Sicherheit finden Sie in meinem Lernprogramm Erstellen einer ASP.NET MVC-App mit Authentifizierung und SQL DB 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 eigentlich 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 der Datenbank einen beliebigen Namen geben, solange sie das .MDF-Suffix hat. Beispielsweise könnten wir die Datenbank MyFilms.mdf benennen.

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.