2010-10-18 6 views
3

Je travaille sur une application que je veux exposer au monde extérieur en utilisant ODATA. Laissez-moi d'abord vous donner une idée de cette application.Puis-je utiliser Entity Framework pour cela?

Dans cette application, j'ai besoin de créer une bibliothèque qui permettra aux utilisateurs d'effectuer des opérations CRUD sur la base de données. Pour ce client a fourni XSD, à partir de laquelle nous avons besoin de générer les classes. L'utilisation de ces classes et de l'utilisateur du fournisseur de services de données fourni par le client peut effectuer les opérations CRUD.

Cette application est prête et maintenant je veux l'exposer en utilisant ODATA. Voici mes résultats w.r.t. exposer cette bibliothèque comme ODATA

  1. Je dois utiliser le fournisseur de Custom/Reflection car je ne peux pas utiliser Entity Framework car je n'ai pas accès aux données.

Mais à l'avenir, le XSD va changer. J'ai donc besoin de changer les métadonnées chaque fois que cela se produit. Puis-je gérer de telle manière que les dernières métadonnées seront toujours exposées sans changer mon code?

Dois-je aller de l'avant avec le reflet/fournisseur personnalisé?

Merci,

Ram

+0

Comment votre application va-t-elle accéder aux données? –

+0

À l'application actuelle ajoute la référence de la bibliothèque et accéder aux données. Au lieu de cela, je souhaite que le développeur puisse ajouter la référence de service (O Data) de la bibliothèque. – Ram

+0

vous pouvez utiliser le modèle de texte et le générateur d'entité poco, le code ur sera changé mais juste un petit changement dans le modèle de texte et une compilation. –

Répondre

0

Vous pouvez certainement changer la forme du OData qui est retourné lorsque les changements XSD. Cependant, il y a un sérieux problème avec cela. La plupart des clients généreront des classes de client basées sur le SSDL qui était présent lorsque la référence de service a été ajoutée. Par conséquent, les clients échoueront car le modèle objet ne correspondra pas à la nouvelle forme de données.

Il est préférable de créer une nouvelle version du service lorsque le schéma change. Ensuite, même si vous devez supprimer les versions précédentes (ce qui provoquera une erreur d'exécution sur le client).

L'autre option consiste à utiliser les fonctions compatibles WCF forward. Cependant, je n'ai aucune idée de la façon dont ils travaillent avec WCF Data Services.

Erick