Création d’une chaîne de connexion et utilisation de SQL Server LocalDB

par Rick Anderson

Notes

Une version mise à jour de ce didacticiel est disponible ici à l’aide de la dernière version de Visual Studio. Le nouveau tutoriel utilise ASP.NET Core MVC, qui fournit de nombreuses améliorations par rapport à ce tutoriel.

Ce didacticiel décrit ASP.NET Core MVC avec des contrôleurs et des vues. Razor Pages est une nouvelle alternative dans ASP.NET Core, un modèle de programmation basé sur des pages qui rend la création d’interface utilisateur web plus facile et plus productive. Nous vous recommandons de suivre le didacticiel sur les pages Razor avant la version MVC. Le didacticiel sur les pages Razor :

  • est plus facile à suivre ;
  • couvre davantage de fonctionnalités ;
  • Est l’approche préférée pour le développement de nouvelles applications.

Création d’une chaîne de connexion et utilisation de SQL Server LocalDB

La MovieDBContext classe que vous avez créée gère la tâche de connexion à la base de données et de mappage des Movie objets aux enregistrements de base de données. Toutefois, vous pouvez vous demander comment spécifier la base de données à laquelle il doit se connecter. Vous n’avez pas besoin de spécifier la base de données à utiliser. Par défaut, Entity Framework utilise LocalDB. Dans cette section, nous allons ajouter explicitement une chaîne de connexion dans le fichier Web.config de l’application.

Base de données locale SQL Server Express

LocalDB est une version allégée du moteur de base de données SQL Server Express qui démarre à la demande et s’exécute en mode utilisateur. LocalDB s’exécute dans un mode d’exécution spécial de SQL Server Express qui vous permet d’utiliser des bases de données en tant que fichiers .mdf. En règle générale, les fichiers de base de données LocalDB sont conservés dans le dossier App_Data d’un projet web.

SQL Server Express n’est pas recommandé pour une utilisation dans les applications web de production. LocalDB en particulier ne doit pas être utilisé pour la production avec une application web, car elle n’est pas conçue pour fonctionner avec IIS. Toutefois, une base de données LocalDB peut être facilement migrée vers SQL Server ou SQL Azure.

Dans Visual Studio 2017, LocalDB est installé par défaut avec Visual Studio.

Par défaut, Entity Framework recherche une chaîne de connexion nommée comme la classe de contexte d’objet (MovieDBContext pour ce projet). Pour plus d’informations, consultez Chaînes de connexion SQL Server pour ASP.NET applications web.

Ouvrez le fichier deWeb.configracine de l’application illustré ci-dessous. (Pas le fichier Web.config dans le dossier Views .)

Capture d’écran montrant la fenêtre Explorateur de solutions et la configuration de point web est sélectionnée et cerclée en rouge.

Recherchez l’élément <connectionStrings> :

Capture d’écran montrant le code et l’élément de chaîne de connexion est cerclé en rouge.

Ajoutez la chaîne de connexion suivante à l’élément <connectionStrings> dans le fichier Web.config .

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

L’exemple suivant montre une partie du fichier Web.config avec la nouvelle chaîne de connexion ajoutée :

<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>

Les deux chaînes de connexion sont très similaires. La première chaîne de connexion est nommée DefaultConnection et est utilisée pour la base de données d’appartenance afin de contrôler qui peut accéder à l’application. La chaîne de connexion que vous avez ajoutée spécifie une base de données LocalDB nommée Movie.mdf située dans le dossier App_Data . Nous n’utiliserons pas la base de données d’appartenance dans ce tutoriel. Pour plus d’informations sur l’appartenance, l’authentification et la sécurité, consultez mon tutoriel Créer une application MVC ASP.NET avec authentification et SQL DB et déployer sur Azure App Service.

Le nom de la chaîne de connexion doit correspondre au nom de la classe DbContext .

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

Vous n’avez pas besoin d’ajouter la chaîne de MovieDBContext connexion. Si vous ne spécifiez pas de chaîne de connexion, Entity Framework crée une base de données LocalDB dans le répertoire des utilisateurs avec le nom complet de la classe DbContext (dans ce cas MvcMovie.Models.MovieDBContext). Vous pouvez nommer la base de données comme vous le souhaitez, à condition qu’elle ait le . Suffixe MDF . Par exemple, nous pouvons nommer la base de données MyFilms.mdf.

Ensuite, vous allez créer une nouvelle MoviesController classe que vous pouvez utiliser pour afficher les données de film et permettre aux utilisateurs de créer des listes de films.