Utilisateur:Pramzan/Bac à sable

Une page de Wikipédia, l'encyclopédie libre.

Qui ne s'est jamais arraché les cheveux pour récupérer ou mettre à jour des données stockées dans une base de données relationnelle comme SQL Serveur, Oracle ou MySQL ?

Ecrire des lignes de SQL directement dans votre code C# ou VB.Net peut s'avérer délicat et long à débuguer. Avec l'arrivée de LinQ To SQL, Microsoft propose une solution élégante pour requêter une base de données sans écrire une seule ligne de SQL. Les requêtes sont écrites avec des mots-clés du langage C# ou VB.Net et des objets, ceci permet une vérification de la syntaxe à la compilation.

Alors que LinQ to SQL propose seulement un mapping "Une classe = Une table", la nouvelle solution de mapping objet-relationnel de Microsoft, nommée Entity Framework propose une approche bien plus avancée.

Entity Framework est un outil permettant de créer une couche d'accès aux données (DAL pour Data Access Layer) liée à une base de données relationnelle. Il propose la création d'un schéma conceptuel composé d'entités qui permettent la manipulation d'une source de données, sans écrire une seule ligne de SQL, grâce à LinQ To Entities. Comparé à d'autres solutions de mapping objet-relationnel (ORM), Entity Framework assure l'indépendance du schéma conceptuel (entités ou objets) du schéma logique de la base de données, c'est-à-dire des tables. Ainsi, le code produit et le modèle conceptuel ne sont pas couplés à une base de données spécifique.

Cet article présente Entity Framework à travers les 3 aspects suivants :

   Les concepts d'Entity Framework
   Définition d'un modèle EDM
   Utilisation des entités et du contexte

La 1ère partie est une introduction théorique à l'outil. Alors que les 2 dernières concernent son utilisation par un exemple concret.

Prérequis logicieɬ[modifier | modifier le code]

Pour utiliser Entity Framework et l'assistant de modèle EDM intégré à Visual Studio 2008, vous avez besoin des prérequis suivants :

   Visual Studio 2008 (édition standard, professionnelle ou team)
   Visual Studio 2008 Service Pack 1 (contient l'assistant de modèle EDM)
   SQL Serveur 2005 (toutes éditions confondues)

Le code sources de l'article (miroir http) contient 2 scripts SQL à installer qui se trouvent dans le dossier SQL, à la racine de l'archive :

   "DB-helloentityfx.sql" crée la base de données "helloentityfx", ses tables, vues et procédures stockées.
   "(FR)Data-helloentityfx.sql" (pour la version française de SQL Serveur 2005) et "(EN)Data-helloentityfx.sql" (pour la version anglaise de SQL Serveur 2005) insèrent les données de test dans la base "helloentityfx".

L'archive de l'article contient aussi un projet Visual Studio 2008 reprenant l'ensemble du code C# ainsi que le modèle EDM de l'article.

autres points[modifier | modifier le code]

2. Conception d'un modèle EDM

   2.1. L'héritage
       2.1.1. Une table par type d'entité
       2.1.2. Une seule table pour toutes les entités
   2.2. Les procédures stockées
       2.2.1. Import de fonctions
       2.2.2. Création, mise à jour et suppression d'entités
   2.3. Une entité pour 2 tables
   2.4. Les types complexes

3. Utilisation des entités et du contexte

   3.1. Opérations CRUD
       3.1.1. Lecture des données
       3.1.2. Création, mise à jour et suppression
   3.2. Personnalisation
       3.2.1. Les classes entités
       3.2.2. La classe de contexte
   3.3. Sérialisation
   3.4. Relations avec le contexte
   3.5. Accès concurrentiel
   3.6. Transactions

Conclusioɲ[modifier | modifier le code]

Entity Framework représente la solution tant attendue de mapping objet-relationnel de Microsoft. Elle constitue une bonne alternative à des outils comme NHibernate, grâce à son architecture ingénieuse du modèle EDM et des entités. L'éditeur de modèle EDM de Visual Studio 2008 permet aussi de faire gagner un temps précieux dans la définition des entités et de leur mapping. L'équipe d'ADO .Net prépare en ce moment une version 2 corrigeant certaines lacunes concernant l'utilisation des classes POCO et du designer.