Création d’un modèle

Un modèle EF stocke les détails sur la façon dont les classes d’application et les propriétés sont mappées aux tables et colonnes de base de données. Il existe deux façons principales de créer un modèle EF :

  • Utilisation du code First : le développeur écrit du code pour spécifier le modèle. EF génère les modèles et les mappages au moment de l’exécution en fonction des classes d’entité et de la configuration de modèle supplémentaire fournie par le développeur.

  • Utilisation du concepteur EF : le développeur dessine des zones et des lignes pour spécifier le modèle à l’aide du concepteur EF. Le modèle résultant est stocké en tant que xml dans un fichier avec l’extension EDMX. Les objets de domaine de l’application sont généralement générés automatiquement à partir du modèle conceptuel.

Flux de travail EF

Ces deux approches peuvent être utilisées pour cibler une base de données existante ou créer une base de données, ce qui entraîne 4 flux de travail différents. Découvrez qui est le meilleur pour vous :

Je veux juste écrire du code... Je veux utiliser un concepteur...
Je crée une base de données Utilisez Code First pour définir votre modèle dans le code, puis générer une base de données. Utilisez Model First pour définir votre modèle à l’aide de zones et de lignes, puis générez une base de données.
J’ai besoin d’accéder à une base de données existante Utilisez Code First pour créer un modèle basé sur du code qui est mappé à une base de données existante. Utilisez Database First pour créer un modèle de zones et de lignes qui est mappé à une base de données existante.

Regardez la vidéo : Quel workflow EF dois-je utiliser ?

Cette courte vidéo explique les différences et comment trouver celle qui vous convient.

Présenté par : Rowan Miller

Quelle vignette de flux de travail WMV | MP4 | WMV (ZIP)

Si après avoir regardé la vidéo, vous ne vous sentez toujours pas à l’aise de décider si vous souhaitez utiliser ef Designer ou Code First, apprenez les deux !

Un regard sous le capot

Que vous utilisiez Code First ou EF Designer, un modèle EF comporte toujours plusieurs composants :

  • Les objets de domaine ou les types d’entités de l’application eux-mêmes. Il s’agit souvent de la couche d’objets

  • Modèle conceptuel constitué de types d’entités et de relations spécifiques au domaine, décrit à l’aide du modèle de données d’entité. Cette couche est souvent référencée avec la lettre « C », pour conceptuelle.

  • Modèle de stockage représentant des tables, des colonnes et des relations définies dans la base de données. Cette couche est souvent appelée « S » pour le stockage.

  • Mappage entre le modèle conceptuel et le schéma de base de données. Ce mappage est souvent appelé mappage « C-S ».

Le moteur de mappage d’EF tire parti du mappage « C-S » pour transformer des opérations sur des entités , telles que la création, la lecture, la mise à jour et la suppression , en opérations équivalentes sur les tables de la base de données.

Le mappage entre le modèle conceptuel et les objets de l’application est souvent appelé mappage « O-C ». Par rapport au mappage « C-S », le mappage « O-C » est implicite et un-à-un : les entités, les propriétés et les relations définies dans le modèle conceptuel sont nécessaires pour correspondre aux formes et aux types des objets .NET. À partir d’EF4 et au-delà, la couche d’objets peut être composée d’objets simples avec des propriétés sans dépendances sur EF. Ces objets sont généralement appelés Plain-Old CLR Objects (POCO) et le mappage de types et de propriétés est effectué en fonction des conventions de correspondance des noms. Auparavant, dans EF 3.5, il y avait des restrictions spécifiques pour la couche objet, comme les entités devant dériver de la classe EntityObject et avoir à transporter des attributs EF pour implémenter le mappage « O-C ».