Frage

Ist es möglich, eine Sammlung von Objekten zu einer RIA Data Service Abfrage zu übergeben? Ich habe keine Probleme eine Entity, ein Int oder eine Reihe von primitiven Typen zu senden, aber sobald ich eine Methode wie folgt erklären

public void GetLessonsConflicts(Lesson[] lessons)
{
}

i erhalten einen Kompilierungsfehler

  

“Operation benannt   ‚GetLessonsConflicts‘ entspricht nicht   auf die erforderliche Unterschrift. Parameter   Typen müssen ein Entitätstyp oder einer der folgenden sein   die vordefinierte serializable   Typen "

Ich versuche nur einige Validierung auf der Serverseite zu tun, bevor ich die Daten zu speichern. Ich habe versucht, List, IEnumerable etc.

Danke

War es hilfreich?

Lösung

Ich denke, das Problem ist eigentlich das Fehlen eines Rückgabewertes. Wie ich es verstehe, können Sie DomainOperations durch Konvention oder durch Attribut identifizieren. Sie zeigen kein Attribut so RIA wird versuchen, es durch Konvention zu entsprechen.

Zum Beispiel durch Konvention, ein Einsatz Methode muss:

  • haben einfügen, hinzufügen oder als Methode Name Präfix erstellen, zum Beispiel InsertEmployee
  • entsprechen die Signatur public void Namen (Entity e);

eine Abfragemethode muss:

  • sein public
  • Rückkehr IEnumerable, IQueryable oder T (wobei T eine Einheit).

Sie eine benutzerdefinierte Domain-Operation muss

  • sein public
  • zurück Leere
  • haben eine Entity als ersten Parameter.

EDIT: Siehe Rami Ein Kommentar unten. Ich glaube, das war zu der Zeit wahr, aber ich bin derzeit nicht mit dieser Technologie arbeiten, damit ich nicht aktuell genug bin, um auf ihn diese Antwort zu aktualisieren andere als zu beachten, dass es nicht richtig sein kann.

Sie können auch Attribute wie [Einfügen] verwenden, [Löschen], [Update], [Abfrage], [Custom]. Aus meiner docs, alle Attribute zu tun ist, um die Voraussetzung für die Konvention Namen entfernen -. Es sie nicht klar ist, für mich, was die [Abfrage] und [Custom] Attribute erreichen

Neben DomainOperations können Sie ServiceOperations (mit dem [Serviceoperation] Attribute) und InvokeOperations definieren.

Dieser Artikel helfen könnte (obwohl ich denke, es ist ein bisschen veraltet).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top