Question

Est-il possible de transmettre une collection d'objets à une requête RIA Data Service? Je n'ai aucun problème à envoyer une entité, un int ou un tableau de types primitifs, mais dès que je déclare une méthode comme celle-ci

public void GetLessonsConflicts(Lesson[] lessons)
{
}

je reçois une erreur de compilation

  

" Opération nommée   'GetLessonsConflicts' n'est pas conforme   à la signature requise. Paramètre   types doivent être un type d'entité ou l'un des   le sérialisable prédéfini   types "

J'essaie juste de faire une validation côté serveur avant de sauvegarder les données. J'ai essayé List, IEnumerable, etc.

Merci

Était-ce utile?

La solution

Je pense que le problème est en réalité le manque de valeur de retour. Si je comprends bien, vous pouvez identifier DomainOperations par convention ou par attribut. Vous ne présentez pas d'attribut, RIA essaiera de le faire correspondre par convention.

Par exemple, par convention, une méthode d'insertion doit:

  • a pour insertion, ajouter ou créer comme préfixe du nom de la méthode, par exemple. InsertEmployee
  • correspond au nom vide public de signature (entité e);

une méthode de requête doit:

  • être public
  • renvoyer IEnumerable, IQueryable ou T (où T est une entité).

une opération de domaine personnalisé doit

  • être public
  • retourne vide
  • a une entité comme premier paramètre.

EDIT: Voir le commentaire de Rami A ci-dessous. Je pense que c'était vrai à l'époque, mais je ne travaille pas actuellement avec cette technologie. Je ne suis donc pas suffisamment au courant pour mettre à jour cette réponse autrement que pour signaler qu'elle est peut-être incorrecte.

Vous pouvez également utiliser des attributs tels que [Insérer], [Supprimer], [Mettre à jour], [Requête], [Personnalisé]. Dans mes documents, tous les attributs ne suppriment pas l'exigence relative à la convention de nom. Pour eux, ce n'est pas clair ce que les attributs [Requête] et [Personnalisé] permettent d'atteindre.

Outre DomainOperations, vous pouvez définir ServiceOperations (à l'aide de l'attribut [ServiceOperation]) et InvokeOperations.

Cet article pourrait vous aider (même si je pense que c'est un peu obsolète).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top