Modèle 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 du Concepteur Entity Framework, 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.

Regarder 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 du Concepteur Entity Framework, 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

Vidéo : WMVMP4 | WMV | (ZIP)

Prérequis

Vous devez installer Visual Studio 2010 ou Visual Studio 2012 pour effectuer cette procédure pas à pas.

Si vous utilisez Visual Studio 2010, vous devez également installer NuGet .

1. Créer 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électionner Windows dans le menu de gauche et l’application console
  • Entrez ModelFirstSample comme nom
  • Sélectionnez OK.

2. Créer un 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 Modèle de données d’entité

  • Entrez BlogsModel comme nom et cliquez sur OK, ce qui lance l’Assistant Modèle de données d’entité

  • Sélectionnez Modèle vide , puis cliquez sur Terminer

    Créer un modèle vide

Entity Framework Designer est ouvert avec un modèle vide. Nous pouvons maintenant 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 et sélectionnez Propriétés

  • Dans le Fenêtre Propriétés modifiez le nom du conteneur d’entités en BlogsContextIl 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

    Ajouter une entité de blog

  • Cliquez avec le bouton droit sur la nouvelle entité sur l’aire de conception, puis sélectionnez Ajouter nouveau -> Propriété scalaire, entrez Nom 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 le Fenêtre Propriétés remplacez le paramètre Nullable par True. Cela nous permet d’enregistrer un blog dans la base de données sans lui affecter d’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 de titre et de contenu à l’entité Post

Maintenant que nous avons deux 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...

  • Faire une fin du point de relation au blog avec une multiplicité de l’un et l’autre point de terminaison de post avec une multiplicité de plusieurscela signifie qu’un blog a beaucoup de billets et un billet appartient à un blog

  • Vérifiez que la case Ajouter une clé étrangère à la case « Publier » de l’entité est cochée et cliquez sur OK

    Ajouter un MF d’association

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.

Initial du modèle

Étapes supplémentaires dans Visual Studio 2010

Si vous travaillez dans Visual Studio 2010, vous devez suivre certaines étapes supplémentaires pour effectuer la 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 que les 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électionner l’onglet En ligne
  • Sélectionner 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 versions ultérieures d’Entity Framework.

  • Cliquez avec le bouton droit sur un emplacement vide de votre modèle dans le concepteur EF, 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 EF 5.x DbContext pour C#, entrez BloggingModel comme nom, puis cliquez sur Ajouter

    Modèle DbContext

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.

    Connexion LOCALDB MF

    Connexion SQL Express MF

  • Sélectionnez OK et vous serez invité à créer une base de données, 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 est 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 des & données d’écriture

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 en fonction du fichier EDMX.

Cette capture d’écran provient de Visual Studio 2012 si vous utilisez Visual Studio 2010 les fichiers BloggingModel.tt et BloggingModel.Context.tt seront directement sous votre projet plutôt que imbriqués sous le fichier EDMX.

Classes générées

Implémentez la méthode Main dans Program.cs, comme indiqué ci-dessous. Ce code crée une nouvelle instance de notre contexte, puis l’utilise pour insérer un nouveau blog. Ensuite, il utilise une requête LINQ pour récupérer tous les blogs de la base de données classées par ordre alphabétique par titre.

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. Traitement des modifications de modèle

Il est maintenant 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é utilisateur à notre modèle.

  • Ajouter un nouveau nom d’entité utilisateur avec nom d’utilisateur comme nom de clé et chaîne comme type de propriété pour la clé

    Ajouter une entité utilisateur

  • Cliquez avec le bouton droit sur la propriété Nom d’utilisateur sur l’aire de conception et sélectionnez Propriétés. Dans le Fenêtre Propriétés modifier le paramètre MaxLength sur 50, cela limite les données qui peuvent être stockées dans le nom d’utilisateur à 50 caractères.

  • Ajouter 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é utilisateur.

  • 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 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éma 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 le Concepteur EF, 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 correspondre au modèle.