Domanda

È possibile passare una raccolta di oggetti a una query di RIA Data Service? Non ho problemi a inviare un Entity, un Int o un array di tipi primitivi, ma non appena dichiaro un metodo come questo

public void GetLessonsConflicts(Lesson[] lessons)
{
}

Ricevo un errore di compilazione

  

" Operazione denominata   'GetLessonsConflicts' non è conforme   alla firma richiesta. Parametro   i tipi devono essere un tipo di entità o uno di   il serializzabile predefinito   Tipi "

Sto solo cercando di fare un po 'di validazione sul lato server prima di salvare i dati. Ho provato List, IEnumerable ecc.

Grazie

È stato utile?

Soluzione

Penso che il problema sia in realtà la mancanza di un valore di ritorno. A quanto mi risulta, è possibile identificare DomainOperations per convenzione o per attributo. Non stai mostrando un attributo, quindi RIA proverà ad abbinarlo per convenzione.

Ad esempio, per convenzione, un metodo insert deve:

  • hanno Inserisci, Aggiungi o Crea come prefisso del nome del metodo, ad es. InsertEmployee
  • corrisponde al nome del vuoto pubblico della firma (Entità e);

un metodo di query deve:

  • essere pubblico
  • restituisce IEnumerable, IQueryable o T (dove T è un'entità).

un'operazione di dominio personalizzata deve

  • essere pubblico
  • return void
  • ha un'entità come primo parametro.

MODIFICA: vedi il commento di Rami A di seguito. Credo che questo fosse vero al momento, ma al momento non sto lavorando con questa tecnologia, quindi non sono abbastanza aggiornato su di essa per aggiornare questa risposta se non per notare che potrebbe non essere corretto.

Oppure puoi usare attributi come [Inserisci], [Elimina], [Aggiorna], [Query], [Personalizzato]. Dai miei documenti, tutti gli attributi che fanno è rimuovere il requisito per la convenzione dei nomi - non è chiaro da loro, per me, cosa ottengono gli attributi [Query] e [Custom].

Oltre a DomainOperations, è possibile definire ServiceOperations (utilizzando l'attributo [ServiceOperation]) e InvokeOperations.

Questo articolo potrebbe aiutare (anche se penso che sia un po ' obsoleto).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top