2011-04-21 4 views
0

Je consomme le service de données OData WCF dans mon application iPad. Je suis en mesure d'ajouter un objet à l'entité sur mon serveur, mais impossible d'ajouter un champ NSData au champ de données d'image SQL Server.objectif-c odatasdk

Je ne reçois aucune erreur lors de l'ajout et de la sauvegarde de l'objet côté distant.

pouvez-vous m'aider comment puis-je envoyer la valeur de type NSData au champ de type de données d'image du serveur SQL en utilisant OdataSDK?

Répondre

0

J'ai réussi à télécharger un fichier byte [] (NSData) en utilisant l'ODataSDK pour Objective-C en configurant mon service OData pour fournir un Stream Service Provider. J'ai démarré à partir d'un projet Visual Studio dont mes tables SQL Server étaient mappées avec Entity Framework, de sorte qu'Odata exposait déjà les entités à enregistrer/lire. Il est important de noter que l'entité qui possède l'octet de fichier doit avoir l'attribut m: hasStream défini dans le fichier Entity Framework .edmx, ce qui peut être fait uniquement en modifiant manuellement le fichier XML (consultez ce tutoriel, qui est en trois parties: here's the first)

Une fois que vous le faites, le ODataSDK pour ObjC fournit les méthodes setSaveStream (et getReadStream) pour enregistrer (et lire) le fichier NSData (bien que j'ai eu quelques problèmes pour obtenir getReadStream à travailler, mais il peut être dû au fait que c'était ma première mise en œuvre d'un tel service).

Si vous le téléchargement de fichiers de plus de 64Ko, un coup d'oeil à cette réponse pour configurer correctement votre web.config: https://stackoverflow.com/a/6907582/423816

Bien sûr, vous devez également utiliser les méthodes addObject: et saveChanges:, mais c'est ce que vous faire avec n'importe quelle autre entité OData.

Espérons que cela aide