L'ADO.NET Entity Framework est un outil de mapping OR. Il nous permet d'avoir une transposition de notre base de données en modèle objet et de manipuler directement ce modèle au lieu de la base de données.
Intérêts
- L'ADO.NET Entity Framework va nous générer automatiquement la couche d'accès aux données sans aucun effort ce qui nous permettra de nous concentrer sur les autres couches.
- Cette couche va nous épargner toute la partie : j’ouvre une connexion à la base de données, je fais une requête sql, j’exécute la requête…
- On a une transposition objet de notre base de données, on peut donc manipuler ces données avec du c# et surtout avec linq et tous les avantages de l’utilisation de linq (requête compilée, intellicence, …).
Générer le modèle à partir du wizard
Pour commencer il faut créer un projet de type ClassLibrary et le nommer.

Positionner vous sur le projet et click droit -> Add -> New Item. Dans « Visual C# Items », cliquer sur l'élément « ADO.NET Entity Data Model », renommez le en ce que vous voulez (eviter les caractères spéciaux et les tirets bas). Cliquer sur « Add ».

Cliquer sur l'élément « Generate from database »et cliquer sur « Next »

Choisir la connexion à la base de données qu'on veut utiliser, nommer la ConnectionString (toujours éviter les caractères spéciaux, ...) et cliquer sur Next.

Choisir les tables qu'on veut utiliser en cochant les checkbox correspondants, nommer le Model Namespace et cliquer sur finish.

Voici le résultat de la génération

Une fois qu'on a généré le modèle, il faut le préparer pour qu'on puisse l'utiliser.
Configuration du modèle
La première chose à faire c'est de compiler le projet contenant le .dbml.
Pour pouvoir utiliser le modèle il faut exporter les fichiers .csdl .msl .ssdl vers le projet qui voudra instancier le modèle. La façon la plus simple de les exporter de couche en couche est de les inclure dans la dll du projet contenant. Mais avant de le faire ouvrez le App.config et regardez la connectionString.
Pour inclure ces fichiers dans la dll il faut aller ouvrir le .dbml, click droit n'importe sur l'espace de travail -> Propiétés. Dans la propriété « Metadata Artifact Processing » séléctionner « Embed in output assembly ». Au passage vous remarquerez que la connectionString a changé de forme.
Compiler le projet. Voilà maintenant votre modèle est prêt à être utilisé.

Utilisation
Pour utiliser le modèle, il faut tout d'abord ajouter une référence au projet contenant le modèle et aussi à l'assembly System.Data.Entity. Ensuite, si on est dans le projet utilisateur final (Projet application web, projet de test, ...) on doit copier / coller la ConnectionString dans le App.Config ou Web.Config. Enfin écrire un using du namespace du modèle et using System.Data.Entity
Pour mon exemple ci-dessus :
using ActionnaireEntrepriseModele;
using System.Data.Entity;
Et c'est tout. On peut maintenant charger le modèle en écrivant :
Entities entities = new Entities();
on peut après ecrire des requête linq comme celle-ci :
var requete = from actionnaire in entities.Actionnaire
where actionnaire.id == id
select actionnaire;