Tout d'abord, je suis nouveau sur .NET WCF oData DataService et j'utilise jQuery du côté client. Je suis à la recherche d'un meilleur moyen (correct) de gérer l'ajout de 2 entités différentes en une seule transaction (post).WCF oData service de données Entité connectée WebInvoke (POST)
Par exemple. J'ai une entité parente avec ID et nom et entité enfant avec ID, ParentID et nom.
Je voudrais ajouter un parent et obtenir l'identifiant du parent et l'utiliser pour ajouter chaque enfant. Cependant, si l'ajout du parent ou de l'entité enfant échoue, elle doit annuler toutes les transactions. D'une façon, j'ai pensé à le faire en créant une méthode WebInvoke qui prendrait une chaîne json comme ceci {"Parent": {"name": "Daddy"}, "Children": [{"name": "Tom "}, {" name ":" Dick "}, {" name ":" Harry "}}} Lors du test de l'argument codé en dur dans la méthode, à chaque invocation, tout fonctionnait correctement. Toutefois, lors de l'appel de POST à partir de jQuery, le paramètre est considéré comme NULL (ennuyeux). J'ai été en mesure d'envoyer des paramètres à la méthode en transmettant la chaîne json urlencodée comme partie de la chaîne de requête. Cependant, la chaîne de requête a une taille limite et je préfère ne pas l'utiliser.
Question 1) Est-il possible d'utiliser WebInvoke POST avec paramètre (s) dans le service de données WCF? Question 2) Y a-t-il un meilleur moyen (juste) de faire ce que j'essaie de faire.
Une autre façon de le faire (je ne l'aime pas) est d'appeler POST sur l'entité parente et obtenir son ID et l'utiliser pour poster pour chaque enfant. Si l'un échoue, appelez la suppression pour tous.
Je ne suis pas allé trop loin avec les tests mobiles mais supportera-t-il les paramètres si j'envoie des données à partir d'appareils mobiles (iPhone (Objectif C) et Android (Java))? Devrais-je continuer à utiliser le service ou envisager de le faire différemment? – imomin
Je ne comprends pas ce que signifie être "supportera-t-il les paramètres". Le lot lui-même n'a pas de paramètres, il contient juste une liste d'opérations (POST, PUT, MERGE, DELETE). –
Désolé, je veux dire serai-je en mesure de faire un POST par lots à partir d'appareils mobiles tels que iPhone et Android, tout comme datajs? – imomin