Je construis un service Web ASP.NET traditionnel - le style construit à l'aide d'asmx. C'est un service assez simple. J'ai commencé à utiliser le nouvel Ado.NET Entity Framework pour ma couche de persistance, et je rencontre quelques problèmes:Utilisation des objets d'entités ADO.NET et des services Web basés sur les fonctions de savon
1) Je n'aime pas le WSDL qui est généré automatiquement - les types complexes étaient définis comme si:
<s:complexType name="TestObject">
<s:complexContent mixed="false">
<s:extension base="tns:EntityObject"> ...
alors, je construit mon propre WSDL et utilisé l'outil wsdl.exe pour créer une définition de service, qui comprend une nouvelle définition de type, maintenant le WSDL ressemble, que je sens une plus croix -plateforme design:
<xsd:complexType name="TestObject">
<xsd:sequence>
<xsd:element minOccurs="0" name="created" type="xsd:dateTime"/> ...
J'ai maintenant l'ASPX générant une belle Fichier WSDL. Mais maintenant je ne suis pas sûr d'où je devrais prendre ceci. J'ai deux types de fondamentalement le même type pour TestObject: 1) qui est utilisé pour la persistance d'entité avec le ADO.NET Entity Framework 2) et un qui est utilisé pour définir des données à travers le fil.
Je voudrais savoir comment les combiner en un. Je suis un peu nerveux à propos de la modification du fichier .cs qui a été généré automatiquement par le framework Ado.NEt Entity, car il semble qu'il pourrait être écrasé.
Quelqu'un avec beaucoup d'expérience avec l'expérience de l'entité Ado.Net pense qu'il vaut la peine d'utiliser? Bien que j'aime l'idée de la rapidité avec laquelle j'ai été capable de créer de la persistance dans ma couche de données, je dois définir de façon très personnalisée comment l'objet entité est transféré sur le réseau, donc j'ai besoin de modifier les attributs associés Propriétés. De même, dans mon implémentation de service, je ne veux pas vraiment convertir d'EntityFramework.TestObject en WSDLDefenition.TestObject.
Merci pour toute contribution.
Vous manquez des exemples? – RobS
WSDL a été conçu pour l'interopérabilité et non comme un mécanisme de transport de type .NET. Fondamentalement, vous essayez d'envoyer du contenu haute fidélité (types .NET) sur un signal de faible fidélité (ASMX + WSDL). Si vous pouvez choisir, utilisez les services basés sur WCF ou .NET Remoting. Ce n'est pas vraiment une réponse, alors je l'ai mis ici. –
J'ai corrigé la question. Vous l'avez résumé sommairement. J'essaie de construire une démo, alors j'espérais partager ce que vous appelez les types haute fidélité et basse fidélité. – taudep