web-dev-qa-db-fra.com

Entity Framework 4 / POCO - par où commencer?

Je fais de la programmation depuis un moment et j'ai déjà utilisé LINQ-To-SQL et LINQ-To-Entities (bien que, lors de l'utilisation d'entités, cette relation repose sur une relation Entity/Table 1-1 - c'est-à-dire qu'elle n'est pas très différente de L2SQL)

J'ai beaucoup lu sur les modèles d'inversion de contrôle, d'unité de travail, de POCO et de référentiel et j'aimerais utiliser cette méthodologie dans mes nouvelles applications.

Ce qui me pose problème, c’est de trouver un guide du débutant clair et concis pour EF4 qui ne suppose pas une connaissance de EF1.

Les questions spécifiques auxquelles j'ai besoin d'une réponse sont:

Code premier/modèle premier? Avantages/inconvénients en ce qui concerne EF4 (c.-à-d. Que se passe-t-il si je code d'abord, le modifie ultérieurement et que je dois régénérer mon modèle de base de données - les données sont-elles préservées et transformées ou supprimées?)

En supposant que je commence par le code (j'aimerais voir comment EF4 le convertit en schéma de base de données), comment puis-je commencer? Assez souvent, j'ai vu des articles avec des diagrammes d'entité disant "Voilà donc mon modèle d'entité, maintenant je vais ..." - Malheureusement, je ne sais pas s'ils ont créé le modèle dans le concepteur, s'il a été sauvegardé générer du code puis arrêté toute génération ultérieure de code automatique - ou - Ils ont codé (POCO)? les classes et les en quelque sorte importées dans la vue deisgner?

Je suppose que ce dont j'ai vraiment besoin, c'est de comprendre d'où vient la "magie" et comment l'ajouter moi-même si je ne génère pas simplement un modèle EF directement à partir d'une base de données.

Je suis conscient que la question est un peu vague mais je ne sais pas ce que je ne sais pas - Donc, toute contribution/correction/clarification serait appréciée.

Inutile de dire que je ne m'attends pas à ce que quelqu'un s'assoit ici et m'apprenne EF - je voudrais juste quelques bons tutoriels/forums/blogs/etc. pour les débutants d'entité complète

183
Basic

Ces articles pourraient présenter un intérêt ... La série s'intéresse réellement aux avantages et aux inconvénients d'une approche POCO.

http://blogs.msdn.com/b/adonet/archive/2009/05/21/poco-in-the-entity-framework-part-1-the-experience.aspx

http://blogs.msdn.com/b/adonet/archive/2009/05/28/poco-in-the-entity-framework-part-2-complex-types-deferred-loading-and- explicit-loading.aspx

http://blogs.msdn.com/b/adonet/archive/2009/06/10/poco-in-the-entity-framework-part-3-change-tracking-with-poco.aspx

Dans ces articles, l'auteur mentionne de futurs articles décrivant les meilleures pratiques pour la mise en œuvre de modèles de référentiel et d'unité de travail, mais je ne les trouve pas. Ces articles sont bien écrits et j'aimerais lire davantage de cet auteur.

56
KellySandwiches

J'ai rencontré ceci: http://blogs.msdn.com/adonet/pages/feature-ctp-walkthrough-code-only-for-the-entity-framework.aspx

Ce qui vous donne d’abord le code pas à pas. Il nécessite le CTP 3 pour EF4 (téléchargement lié à partir de cet article).

C'est assez proche de ce que je recherchais (bien qu'une solution qui ne repose pas sur un CTP aurait été préférable)

11
Basic

Je vous recommande de prendre environ une demi-heure et de générer un modèle EF1.0 stable dans votre système de stockage actuel. Cela vous aidera à comprendre les métaphores et les concepts de EF 4.0. Créez simplement un client simple, Produits et commandes db ... Je vous recommande de faire votre propre travail et de ne pas utiliser Northwind.

7
Chris B. Behrens

C'est une excellente question, mais difficile à garder à jour alors qu'Entity Framework continue de mûrir. Le meilleur endroit pour commencer qui restera à jour dans le futur est page EF de Microsoft .

Quelques autres liens que j'ai trouvés utiles pendant la recherche sur Google (axés sur le code d'abord):

4
Dan

Vous pouvez prendre le livre de Lerman ou quelque chose de plus simple comme "Pro linq object-relationnel mapping". Tous les concepts sont toujours les mêmes avec POCO, sauf que vous devez maintenant désactiver la génération de code et mapper directement votre modèle dans edmx csdl (ou créer votre propre générateur POCO). Tous les principes de cartographie sont les mêmes aussi. Quoi qu’il en soit, au moment de l’exécution, vous utilisez un proxy dérivé de votre objet POCO. Vous devez donc vous préoccuper de la prise en charge de l’interception (virtualisation de vos propriétés POCO).

3
Voice
3
Daniel

Voici une procédure pas à pas sur le modèle POCO pour Entity Framework. Vous pouvez également consulter le blog de l’équipe ADO.NET . Si vous voulez commencer par le début (EF v1.0) comme base de votre connaissance EF, j'ai trouvé le livre de Julia Lerman Programming Entity Framework très complet .

2
DaveB

Ne demandez pas au représentant de commenter une réponse, mais voici la suite de la réponse de Jinkinz:

Utilisation de modèles de référentiel et d'unité d'oeuvre avec Entity Framework 4.0:

http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0. aspx

2
woggles

Si vous allez utiliser des cénarios déconnectés, je vous recommande de lire le livre de Julie Lerman: "Programmation de DbContext", en particulier au chapitre 4.

J'ai trouvé beaucoup d'exemples dans des blogs, etc., mais presque tous concernent des cénarios connectés.

Je commence aussi. et ce livre m'a beaucoup aidé. Au fait, je lui ai acheté trois livres.

1
Rodolfo

Julia Lerman a ne belle série de vidéos d'introduction , environ 10 minutes chacune. Ils sont introductifs, mais de nombreux conseils pratiques permettent d’éviter certains obstacles à l’apprentissage. J'ai particulièrement aimé sa démonstration de regarder le code SQL réel en utilisant SQL Server Profiler.

1
David Pope

Wow, beaucoup de réponses. Que diriez-vous d'un exemple qui contient une version peaufinée de modèles T4 générant des interfaces POCO + + référentiels?

https://entityinterfacegenerator.codeplex.com

0
Believe2014

Je cherchais les mêmes réponses et suis tombé sur http://www.dotnetcurry.com/ShowArticle.aspx?ID=599

À la fin du lien, il existe peu de liens qui vous permettront de continuer avec Entity Framework 4.

J'espère que cela t'aides

0
DotNetInfo