Domain Driven Design, .NET et Entity Framework

c# domain-driven-design entity-framework object-object-mapping visual-studio-2008

Question

Je suis nouveau dans la conception dirigée par domaine, mais je veux l'apprendre et l'utiliser pour une nouvelle application. J'utiliserai Entity Framework pour l'accès aux données.

La structure de base à ce jour est la suivante:

ASP.NET MVC et autres clients (appareils mobiles, etc.)
|
Services Web
|
Modèle de domaine (services, référentiels, agrégats, entités et objets de valeur)
|
Couche d'accès aux données (Entity Framework)
|
Stockage de données (SQL Server)

Quel est le meilleur moyen de transférer des données entre la couche d'accès aux données et le modèle de domaine? Je pense que les entités du modèle de domaine sont des objets POCO et qu'elles doivent être mappées vers / à partir des objets Entity Framework. Est-ce une bonne solution?

Si c'est le cas:
Comment et où une telle cartographie devrait-elle avoir lieu? (Couche de modèle de domaine ou couche d'accès aux données)
Où et comment interroger Entity Framework (c.-à-d. Renvoyer une liste basée sur une recherche)?

Réponse acceptée

ANDREY YEMELYANOV a réalisé une thèse sur ce sujet précis:

http://gupea.ub.gu.se/dspace/bitstream/2077/10462/1/gupea_2077_10462_1.pdf

Cela deviendra beaucoup plus facile avec la sortie de EF 4, qui supporte les objets POCO.

En attendant, vous pouvez essayer d'utiliser automapper pour mapper des objets de domaine et EF, voir: http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/01/22/automapper-the-object-object-mapper. aspx


Réponse populaire

Je pense que les entités du modèle de domaine sont des objets POCO et qu'elles doivent être mappées vers / à partir des objets Entity Framework. Est-ce une bonne solution?

Je pense que c'est.

C’est quelque chose que nous avons fait avec succès, bien que dans mon cas, dans le monde Java. Nos classes de domaine contiennent la majorité de la logique métier. Chacun a une référence à un objet d'entité de données mince et délègue l'obtention et la définition des propriétés persistantes à l'entité de données.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow