¿Cómo pasar una colección de entidades al servicio de datos .NET RIA?
-
22-07-2019 - |
Pregunta
¿Es posible pasar una colección de objetos a una consulta del Servicio de datos RIA? No tengo problemas para enviar una Entidad, un Int o una matriz de tipos primitivos, pero tan pronto como declaro un método como este
public void GetLessonsConflicts(Lesson[] lessons)
{
}
me sale un error de compilación
" Operación nombrada 'GetLessonsConflicts' no se ajusta a la firma requerida. Parámetro los tipos deben ser un tipo de entidad o uno de el serializable predefinido tipos "
Solo estoy tratando de hacer alguna validación en el lado del servidor antes de guardar los datos. He intentado List, IEnumerable, etc.
Gracias
Solución
Creo que el problema es en realidad la falta de un valor de retorno. Según tengo entendido, puede identificar DomainOperations por convención o por atributo. No está mostrando un atributo, por lo que RIA intentará igualarlo por convención.
Por ejemplo, por convención, un método de inserción debe:
- tiene Insertar, Agregar o Crear como prefijo del nombre del método, p. InsertEmployee
- coincidir con el nombre público vacío de la firma (Entidad e);
un método de consulta debe:
- ser público
- return IEnumerable, IQueryable o T (donde T es una entidad).
una operación de dominio personalizado debe
- ser público
- retorno nulo
- tiene una entidad como primer parámetro.
EDITAR: Vea el comentario de Rami A a continuación. Creo que esto era cierto en ese momento, pero actualmente no estoy trabajando con esta tecnología, por lo que no estoy lo suficientemente actualizado para actualizar esta respuesta, aparte de notar que puede ser incorrecta.
O puede usar atributos como [Insertar], [Eliminar], [Actualizar], [Consulta], [Personalizado]. De mis documentos, todo lo que hacen los atributos es eliminar el requisito de la convención de nombres; para mí no está claro qué logran los atributos [Consulta] y [Personalizado].
Además de DomainOperations, puede definir ServiceOperations (utilizando el atributo [ServiceOperation]) e InvokeOperations.
Este artículo podría ayudar (aunque creo que es un poco fuera de fecha).