2008-09-10 5 views

Répondre

1

Je fais ce qui suit:

Une couche de service contient mes objets métier. Il est passé le référentiel via une inversion de contrôle (Castle Windor est mon choix habituel). Le référentiel est en charge du mappage entre les objets métier et mes objets de structure d'entité. Les avantages: Vous n'avez aucun problème avec l'état de l'objet ou le contexte des objets EF, car vous ne faites que les charger lors de la manipulation des données du côté du référentiel. Cela facilite la situation en les transmettant à WCF/Web-Services. Les inconvénients: Vous perdez une partie de la fonctionnalité de suivi d'Entity Framework, vous devez charger manuellement l'objet de données (objets ef), éventuellement si nécessaire manuellement à des contrôles optimistes de concurrence (via un horodatage sur l'objet métier par exemple).

Mais généralement je préfère cette solution, car il est possible de changer plus tard le référentiel. Cela me permet d'avoir différents dépôts (par exemple mon objet utilisateur utilise en fait ASPNetAuthenticationRepository au lieu de EntityFrameworkRepository) mais pour ma couche de service c'est transparent.

En ce qui concerne l'interface, j'utiliserais les objets métier de la couche de service comme objets de paramètre et ne laisserais pas ces objets EF hors de la couche de référentiel. J'espère que ça aide

1

Je suis presque comme ça sauf pour le truc "Castle Windor". Jetez un oeil à openticket.codeplex.com

Questions connexes