Model First
Cette vidéo et cette procédure pas à pas fournissent une introduction au développement Model First à l’aide d’Entity Framework. Model First vous permet de créer un modèle à l’aide d’Entity Framework Designer, puis de générer un schéma de base de données à partir du modèle. Le modèle est stocké dans un fichier EDMX (extension .edmx) et peut être consulté et modifié dans Entity Framework Designer. Les classes avec lesquelles vous interagissez dans votre application sont générées automatiquement à partir du fichier EDMX.
Regardez la vidéo
Cette vidéo et cette procédure pas à pas fournissent une introduction au développement Model First à l’aide d’Entity Framework. Model First vous permet de créer un modèle à l’aide d’Entity Framework Designer, puis de générer un schéma de base de données à partir du modèle. Le modèle est stocké dans un fichier EDMX (extension .edmx) et peut être consulté et modifié dans Entity Framework Designer. Les classes avec lesquelles vous interagissez dans votre application sont générées automatiquement à partir du fichier EDMX.
Présentée par : Rowan Miller
Conditions préalables
Vous devrez avoir Visual Studio 2010 ou Visual Studio 2012 installé pour effectuer cette procédure pas à pas.
Si vous utilisez Visual Studio 2010, vous devez également installer NuGet.
1. Création de l’application
Pour simplifier les choses, nous allons créer une application console de base qui utilise Model First pour effectuer l’accès aux données :
- Ouvrez Visual Studio.
- Fichier -> Nouveau -> Projet
- Sélectionnez Windows dans le menu de gauche et Application console
- Entrez ModelFirstSample comme nom
- Sélectionnez OK.
2. Création du modèle
Nous allons utiliser Entity Framework Designer, qui est inclus dans Visual Studio, pour créer notre modèle.
Projet -> Ajouter un nouvel élément…
Sélectionnez Données dans le menu de gauche, puis ADO.NET Entity Data Model
Entrez BloggingModel comme nom et cliquez sur OK, ce qui lance l’Assistant Entity Data Model
Sélectionnez Modèle vide, puis cliquez sur Terminer
Entity Framework Designer est ouvert avec un modèle vide. À présent, nous pouvons commencer à ajouter des entités, des propriétés et des associations au modèle.
Cliquez avec le bouton droit sur l’aire de conception, puis sélectionnez Propriétés
Dans la fenêtre Propriétés, remplacez le Nom du conteneur d’entités par BloggingContextIl s’agit du nom du contexte dérivé qui sera généré pour vous. Le contexte représente une session avec la base de données, ce qui nous permet d’interroger et d’enregistrer des données
Cliquez avec le bouton droit sur l’aire de conception et sélectionnez Ajouter nouveau -> Entité...
Entrez Blog comme nom d’entité et BlogId comme nom de clé, puis cliquez sur OK
Cliquez avec le bouton droit sur la nouvelle entité sur l’aire de conception, puis sélectionnez Ajouter nouveau -> Propriété scalaire, entrez Name comme nom de la propriété.
Répétez ce processus pour ajouter une propriété Url.
Cliquez avec le bouton droit sur la propriété Url sur l’aire de conception et sélectionnez Propriétés. Dans la fenêtre Propriétés, modifiez le paramètre Nullable sur la valeur vraiCela nous permet d’enregistrer un blog dans la base de données sans l’affecter à une Url
À l’aide des techniques que vous venez d’apprendre, ajoutez une entité Post avec une propriété de clé PostId
Ajouter des propriétés scalaires Titre et Contenu à l’entité Post
Maintenant que nous avons quelques entités, il est temps d’ajouter une association (ou une relation) entre elles.
Cliquez avec le bouton droit sur l’aire de conception et sélectionnez Ajouter nouveau -> Association...
Pointez une extrémité de la relation vers Blog avec une multiplicité de Un et l’autre extrémité vers Billet avec une multiplicité de PlusieursCela signifie qu’un Blog a de nombreux Billets et qu’un Billet appartient à un Blog
Vérifiez que la case Ajouter des propriétés de clé étrangère à l’entité « Billet » est cochée et cliquez sur OK
Nous avons maintenant un modèle simple à partir duquel nous pouvons générer une base de données et l’utiliser pour lire et écrire des données.
Étapes supplémentaires dans Visual Studio 2010
Si vous travaillez dans Visual Studio 2010, vous devez suivre certaines étapes supplémentaires pour effectuer une mise à niveau vers la dernière version d’Entity Framework. La mise à niveau est importante, car elle vous donne accès à une surface d’API améliorée, qui est beaucoup plus facile à utiliser, ainsi qu’aux derniers correctifs de bogues.
Tout d’abord, nous devons obtenir la dernière version d’Entity Framework à partir de NuGet.
- Projet -> Gérer les packages NuGet...Si vous n’avez pas l’option Gérer les packages NuGet... vous devez installer la dernière version de NuGet
- Sélectionnez l’onglet En ligne
- Sélectionnez le package EntityFramework
- Cliquez sur Install.
Ensuite, nous devons échanger notre modèle pour générer du code qui utilise l’API DbContext, qui a été introduite dans les dernières versions d’Entity Framework.
Cliquez avec le bouton droit sur un emplacement vide de votre modèle dans EF Designer, puis sélectionnez Ajouter un élément de génération de code...
Sélectionnez Modèles en ligne dans le menu de gauche et recherchez DbContext
Sélectionnez le générateur DbContext EF 5.x pour C#, entrez BloggingModel comme nom, puis cliquez sur Ajouter
3. Génération de la base de données
Étant donné notre modèle, Entity Framework peut calculer un schéma de base de données qui nous permettra de stocker et de récupérer des données à l’aide du modèle.
Le serveur de base de données installé avec Visual Studio est différent selon la version de Visual Studio que vous avez installée :
- Si vous utilisez Visual Studio 2010, vous allez créer une base de données SQL Express.
- Si vous utilisez Visual Studio 2012, vous allez créer une base de données LocalDB.
Allons-y et générons la base de données.
Cliquez avec le bouton droit sur l’aire de conception et sélectionnez Générer une base de données à partir du modèle...
Cliquez sur Nouvelle connexion... et spécifiez LocalDB ou SQL Express, selon la version de Visual Studio que vous utilisez, entrez ModelFirst.Blogging comme nom de base de données.
Sélectionnez OK et vous serez invité à créer une base de données, puis sélectionnez Oui
Sélectionnez Suivant et Entity Framework Designer calcule un script pour créer le schéma de base de données
Une fois le script affiché, cliquez sur Terminer et le script sera ajouté à votre projet et ouvert
Cliquez avec le bouton droit sur le script et sélectionnez Exécuter. Vous serez invité à spécifier la base de données à laquelle vous vous connectez. Spécifiez LocalDB ou SQL Server Express, selon la version de Visual Studio que vous utilisez
4. Lecture et écriture de données
Maintenant que nous avons un modèle, il est temps de l’utiliser pour accéder à certaines données. Les classes que nous allons utiliser pour accéder aux données sont générées automatiquement pour vous en fonction du fichier EDMX.
Cette capture d’écran a été prise dans Visual Studio 2012. Si vous utilisez Visual Studio 2010, les fichiers BloggingModel.tt et BloggingModel.Context.tt sont directement sous votre projet, et non imbriqués sous le fichier EDMX.
Implémentez la méthode Main dans Program.cs, comme indiqué ci-dessous. Ce code crée une instance de notre contexte, puis l’utilise pour insérer un nouveau Blog. Il utilise ensuite une requête LINQ pour récupérer tous les Blogs de la base de données classées par titre en ordre alphabétique.
class Program
{
static void Main(string[] args)
{
using (var db = new BloggingContext())
{
// Create and save a new Blog
Console.Write("Enter a name for a new Blog: ");
var name = Console.ReadLine();
var blog = new Blog { Name = name };
db.Blogs.Add(blog);
db.SaveChanges();
// Display all Blogs from the database
var query = from b in db.Blogs
orderby b.Name
select b;
Console.WriteLine("All blogs in the database:");
foreach (var item in query)
{
Console.WriteLine(item.Name);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
Vous pouvez maintenant exécuter l’application et la tester.
Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...
5. Gestion des modifications de modèle
Maintenant, il est temps d’apporter des modifications à notre modèle. Lorsque nous effectuons ces modifications, nous devons également mettre à jour le schéma de base de données.
Nous allons commencer par ajouter une nouvelle entité User à notre modèle.
Ajoutez un nouveau nom d’entité User avecUsername comme nom de clé et Chaîne comme type de propriété pour la clé
Cliquez avec le bouton droit sur la propriété Username sur l’aire de conception et sélectionnez Propriétés. Dans la fenêtre Propriétés, remplacez le paramètre MaxLength par 50Cela limite les données qui peuvent être stockées dans le nom d’utilisateur à 50 caractères
Ajoutez une propriété scalaire DisplayName à l’entité User
Nous avons maintenant un modèle mis à jour et nous sommes prêts à mettre à jour la base de données pour prendre en charge notre nouveau type d’entité User.
- Cliquez avec le bouton droit sur l’aire de conception et sélectionnez Générer une base de données à partir du modèle.... Entity Framework calcule un script pour recréer un schéma basé sur le modèle mis à jour.
- Cliquez sur Terminer
- Vous pouvez recevoir des avertissements concernant le remplacement du script DDL existant et le mappage et les parties de stockage du modèle. Cliquez sur Oui pour ces deux avertissements
- Le script SQL mis à jour pour créer la base de données est ouvert pour vous
Le script généré supprime toutes les tables existantes, puis recrée le schéma à partir de zéro. Cela peut fonctionner pour le développement local, mais n’est pas viable pour envoyer (push) des modifications à une base de données déjà déployée. Si vous devez publier des modifications dans une base de données déjà déployée, vous devez modifier le script ou utiliser un outil de comparaison de schémas pour calculer un script de migration. - Cliquez avec le bouton droit sur le script et sélectionnez Exécuter. Vous serez invité à spécifier la base de données à laquelle vous vous connectez. Spécifiez LocalDB ou SQL Server Express, selon la version de Visual Studio que vous utilisez
Résumé
Dans cette procédure pas à pas, nous avons examiné le développement Model First, qui nous a permis de créer un modèle dans EF Designer, puis de générer une base de données à partir de ce modèle. Nous avons ensuite utilisé le modèle pour lire et écrire des données à partir de la base de données. Enfin, nous avons mis à jour le modèle, puis recréé le schéma de base de données pour qu’il corresponde au modèle.