2010-02-22 4 views
8

Dans notre application multicouche, nous accédons à la base de données via des appels WCF. Nous créons et éliminons des contextes par requête. Nous utilisons également l'approche POCO. Ma question est, dans le modèle pur POCO (POCO ignorants complètement persistants) est-il possible de suivre les changements, alors que nous créons et disposons le contexte par demande (comme le contexte précédent est disposé dans cet appel de service)? Si oui comment EF gère cette situation? Dans la mesure où je peux voir 2 mécanismes (suivi basé sur des snapshots de changement et le suivi de changement basé sur la notification avec des proxies) ne sera pas capable de gérer cela? Si non, comment devrions-nous gérer le contexte afin que nous puissions suivre les changements?Entitity Framework: Suivi des modifications dans SOA avec l'approche POCO

Répondre

2

Malheureusement, vous ne trouverez pas de solution simple dans Entity Framework v1.0. Il y a eu beaucoup discussion et une petite résolution. C'est l'un des nombreux problèmes connus avec EF v1.0 et d'une manière ou d'une autre, vous devrez écrire beaucoup de code pour gérer cela.

Dans .NET 4.0, l'équipe ADO.NET a introduit Self-Tracking Entities pour résoudre ce problème.

6

Je dirais:

Ne pas utiliser des entités auto-suivi dans un environnement pur SOA: Les entités autovirants ne fonctionnent que lorsque vos clients utilisent les classes proxy générées. Lorsque vous faites SOA par le livre, vous ne pouvez pas attendre vos clients . Net, ou même plus,. Net 4.0; Quel est le seul scénario dans lequel les entités d'auto-suivi fonctionneront. Vos services seront inutiles à d'autres clients.

Just My 2 cents, Cordialement, Koen

3

Entités autovirants ne résout en effet ce problème si vous êtes capable de partager le modèle avec le client plutôt que d'utiliser les métadonnées générées par la référence.

Résumé le STE et de les référencer du client, vous aurez accès à un suivi déconnecté du contexte.

+0

En ce qui concerne les références abrégées à * "Entités Self-Tracking" *, veuillez noter que pour les abréviations à utiliser, vous devez d'abord introduire les abréviations. – XenoRo

Questions connexes