Le Model

Source : https://docs.microsoft.com/en-US/aspnet/mvc/overview/getting-started/introduction/adding-a-model

Code first avec Entity Framework

Entité POCO :

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

Avec son DbContext :

using System;
using System.Data.Entity;
namespace MvcMovie.Models
{
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
}

MovieDBContext représente le contexte Database de Movie qui prend en charge tout : Select, modifier, supression, …

DataBase first

Source : https://docs.microsoft.com/en-US/aspnet/visual-studio/overview/2013/aspnet-scaffolding-overview

Il est possible de générer du code pour une app MVC ou une Web API à partir de la base de donnée.

Créer une Connection String et travailler avec SQL Server LocalDB

LocalDB est une version légère de SQL Server Express Database Engine qui démarre sur demande, et tourne en mode utilisateur.

LocalDB tourne tourne dans un mode d’exécution spécial de SQL Server Express qui nous permet de travailler avec une database en fichiers .mdf

Typiquement, les fichiers d’une database LocalDB sont dans le fichier App_Data du projet Web.

LocalDB n’est pas fait pour être déployé en production car ce n’est pas designé pour fonctionner avec IIS.

En revanche, une database LocalDB peut facilement être migrée sur SQL Server ou SQL Azure.

Donc on a le schémas : Code first -> Génére LocalDB -> Migre sur SQL Server

Plus d’informations sur les connexions String :

https://msdn.microsoft.com/library/jj653752.aspx

Par défaut, Entity Framework se base sur une connexion string (créée par défaut) dans Web.config (pas Web.config dans le dossier View) :

Web.config :

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

Il y a par défaut une DefaultConnexion, qui est utilisée pour le membership database, pour controler qui peut accéder à l’application.

Pour en savoir plus sur la database de membership, voir :

https://docs.microsoft.com/fr-fr/aspnet/core/security/authorization/secure-data

Il faut rajouter une seconde connexion string, ici MovieDbContext (qui match la classe MovieDBContext), afin de maitriser par exemple le fichier qui servira de DB :

AttachDBFilename=|DataDirectory|\Movies.mdf"

On remarquera néanmoins que la création de la connexionString MovieDBContext n’était même pas obligatoire, car si on ne spécifie pas de Connexion String, Entity Framework va créer automatiquement une Database LocalDB dans le dossier de l’utilisateur, avec le nom totalement qualifié du DbContext (ici MvcMovie.Models.MovieDBContext).

results matching ""

    No results matching ""