|
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
|
Traducción
Original
|
Operaciones de servicio (WCF Data Services)
http://localhost:12345/Northwind.svc/GetOrdersByCity?city='London'
-
La operación debe ser un método de instancia pública que sea miembro de la clase del servicio de datos. -
El método de la operación solo puede aceptar parámetros de entrada. El servicio de datos no puede tener acceso a los datos enviados en el cuerpo del mensaje. -
Si se definen parámetros, el tipo de cada parámetro debe ser un tipo primitivo. Cualquier dato de un tipo no primitivo se debe serializar y pasar a un parámetro de cadena. -
El método debe devolver uno de los elementos siguientes: -
void (Nothing en Visual Basic) -
Un tipo de entidad en el modelo de datos expuesto por el servicio de datos. -
Una clase primitiva como entero o cadena.
-
-
Para admitir opciones de consulta como ordenaciones, paginaciones y filtrados, los métodos de las operaciones de servicio deben devolver IQueryable<T>. Las solicitudes a operaciones de servicio que incluyen opciones de consulta se rechazan para las operaciones que solo devuelven IEnumerable<T>. -
Para que se pueda tener acceso a las entidades relacionadas usando las propiedades de navegación, la operación de servicio debe devolver IQueryable<T>. -
El método se debe anotar con el atributo [WebGet] o [WebInvoke]. -
[WebGet] permite invocar el método usando una solicitud GET. -
[WebInvoke(Method = "POST")] permite invocar el método usando una solicitud POST. No se admiten otros métodos WebInvokeAttribute.
-
-
Una operación de servicio se puede anotar con el elemento SingleResultAttribute que especifica que el valor devuelto desde el método es una sola entidad en vez de una colección de entidades. Esta distinción dicta la serialización resultante de la respuesta y la manera en que se representan en el URI los recorridos de las propiedades de navegación adicionales. Por ejemplo, cuando use la serialización AtomPub, una sola instancia de tipo de recurso se representa como elemento de entrada y un conjunto de instancias como elemento de fuente.
http://localhost:12345/Northwind.svc/GetOrdersByState?state='CA'&includeItems=true
http://localhost:12345/Northwind.svc/GetOrdersByCity?city='London'&$expand=Order_Details&$orderby=RequiredDate desc
Nota
|
|---|
|
|
// Override to manage returned exceptions. protected override void HandleException(HandleExceptionArgs args) { // Handle exceptions raised in service operations. if (args.Exception.GetType() == typeof(TargetInvocationException) && args.Exception.InnerException != null) { if (args.Exception.InnerException.GetType() == typeof(DataServiceException)) { // Unpack the DataServiceException. args.Exception = args.Exception.InnerException as DataServiceException; } else { // Return a new DataServiceException as "400: bad request." args.Exception = new DataServiceException(400, args.Exception.InnerException.Message); } } }
Nota