2009-08-26 7 views
1

J'écris une nouvelle application en utilisant Entity Framework.Meilleures pratiques pour Entity Framework?

Où se trouverait l'EF? Ma pensée actuelle est de l'isoler dans un ensemble DataAccess qui expose un certain nombre de dépôts (qui enveloppent essentiellement EF).

Je créerais alors mes propres objets de domaine et les transmettrais au référentiel qui les mappe à une entité EntityFramework (que je traite comme un DAO).

Le problème avec cette approche est la quantité de mappage que je devrais faire, même pour un modèle de domaine plus petit.

J'aime aussi l'approche Repository.GetAll(Func<TDomainObj, bool> filter) pour récupérer un certain nombre d'éléments filtré, mais je aurais besoin de convertir la fonction de prendre une place OAC:

Func<**TDomainObj**, bool> filter --->

Func<**TEntityFrameworkObj**, bool> filter 

Je ne sais pas comment je pourrais faire ça? Si j'ai simplement autorisé Func<TEntityFrameworkObj, bool> sur le référentiel, l'appelant devrait connaître environ System.Data.Objects.

Je commence à penser que je devrais juste coupler l'application à EF et d'utiliser leur System.Data.Objects comme mon modèle ....

attendons avec impatience vos suggestions/commentaires,

David

Répondre

0

Nous encapsulons EF derrière une couche de service. La couche de service expose les objets DTO. Nous mappons les objets EF aux objets DTO dans le code.

Dans certains cas, nous faisons un get par template, ce qui est similaire à ce que vous faites. Où nous envoyons un objet, par exemple un client et récupérons tous les clients qui ressemblent à celui que nous avons envoyé.

2

Julie Lerman has a free, online presentation on EF tips and tricks tomorrow.

Je remettrai « Comment penser comme Entity Framework (et pourquoi vous voudrez peut-être déranger le faire en premier lieu) » au free, online CodeRage conference in September. La présentation sera disponible pour téléchargement peu de temps après.

+0

Merci pour l'information, j'ai regardé la présentation de Julies :) Je garderai un oeil ouvert pour le vôtre ... très utile avec tout cela :) –

Questions connexes