2010-01-08 3 views
2

Après avoir lu cadre Enitity, j'ai quelques questions:Entity Framework (Classes d'entités) Serialization

1] Quelle est la meilleure façon de transférer les entités entre les niveaux? a] Dois-je créer des DTO plus légers pour ceci ou pour que je puisse sérialiser l'entité et la transférer?

b] si je dois créer DTO lumière, pour Efficency, et après avoir vu l'utilisation agréable de Automapper, i na pas tout à fait comprendre comment il sauve le codage (si elle est son objectif) supplémentaire, i signifie, nous devons écrire les propriétés de la classe flatter (DTO), de sorte qu'il enregistre seulement le ctor.

2] est là un point quelconque du bâtiment entitiy classes arrière de DTO?

merci.

Répondre

2

Réponse à 1: La meilleure façon de transférer des entités entre des niveaux dépend de votre application. Vous pouvez créer DTO qui est ma solution préférée si des entités sérialisation est possible mais vous devez vous assurer que c'est en fait ce que vous voulez faire et rappelez-vous:

« Lorsque vous utilisez sérialisation binaire et sérialisation contrat de données WCF, si l'objet étant sérialisé a des objets liés dans le graphe d'objets, ces objets sont également sérialisés, la sérialisation XML ne sérialise pas les objets liés. "

Automapper fonctionne par des propriétés de mappage automatique plutôt que d'avoir à écrire toutes les déclarations de plomberie tels que:

dto.id = entity.id; 
... 
all other dto assignment operations 

vous voir bientôt la quantité de code de plomberie Additionnez donc permettra d'économiser beaucoup de ce = que lignes de code surtout si vous avez des classes de vue ainsi que des objets dto et j'ai trouvé cela adapté ce que je voulais parfaitement. Pour autant que je sache, automapper ne fonctionnera que si les noms sont les mêmes entre l'entité et DTO et qu'il peut correspondre entre les types de ces propriétés. Vous pouvez ajouter des règles de mappage pour la conversion entre types si la dto et l'entité stockent les données dans un type différent.

Réponse à 2: Si vous convertissez des objets en DTO et que vous les modifiez à des niveaux supérieurs, comment envisagez-vous de les sauvegarder dans l'infrastructure de l'entité? Habituellement, vous devez simplement les convertir sur les entités concernées/créer une nouvelle entité et soumettre ces modifications.

+0

enregistrer le codage dto.id = entity.id ?, pas tout à fait wow, de toute façon je suis encore à gauche avec des questions non répondues, est-ce que le transfert d'entités à dtos est le meilleur moyen? ou sérialiser les entités est également option possible? – Robocide

+0

que vouliez-vous faire? Je ne peux pas vraiment dire lequel est le «meilleur» mais cela dépend de votre application et de vos préférences. J'ai mis à jour ma réponse avec quelques points qui devraient répondre à toutes vos questions. – bobwah

+0

A propos d'automapper, je voulais qu'il mappe sans me forcer à ouvrir le code et écrire de nouvelles propriétés DTO/modification exisitng DTO nouvelles. [peut être à partir d'une configuration xml] .parce que si je suis déjà en train d'ouvrir le code et d'écrire la classe DTO et ses propriétés, coder dto.id = entitiy.id, ce n'est pas un gain de temps, c'est bien, mais très peu un. 2] utilisez-vous aussi automapper pour, dto -> entity?J'ai vu dans stackoverflow il a un problème? – Robocide

0

Vous voulez regarder RIA Services. C'est construit pour ça.