Pregunta

Tengo una operación de servicio de la forma:

[WebGet]
public IQueryable<BusinessObject> BusinessObjectsByType(string name)

con regla de acceso

config.SetServiceOperationAccessRule("BusinessObjectsByType", ServiceOperationRights.All);

Cuando tengo acceso a esta operación de servicio a través de un navegador web, que expone los datos, pero no en los alimentos y las entradas (formato AtomPub) y tampoco me deja utilizar las opciones de consulta de base como $ superior, $ orderby, etc quejándose de que estos " no se puede aplicar al recurso solicitado. He emparejado con todos los requisitos especificados en http://msdn.microsoft.com/en -us / biblioteca / cc668788.aspx pero sin ningún éxito. Cualquier ayuda será apreciada. Gracias.

¿Fue útil?

Solución

Si el BussinesObject no se reconoce como entidad, la operación del servicio será tratado como si regresara IEnumerable lugar. Para la consulta de trabajo la operación del servicio debe devolver IQueryable donde T es un tipo de entidad. Suponiendo ya sea EF o proveedor de Reflexión un tipo de entidad es un tipo que tiene una propiedad clave (ya sea por heurística o por medio de DataServiceKey atributo) y para la cual no es una propiedad de la clase de contexto de tipo IQueryable. Si el BussinesObject no es una entidad, WCF Data Services no puede admite consultas sobre el resultado de la operación del servicio. Hay muchas razones, por nombrar sólo uno: con el fin de serializar la respuesta de cada objeto debe tener una URL única (que es un átomo: id), para ser capaz de generar una URL única del objeto debe tener propiedades clave. Y propiedades clave sólo se pueden definir en las entidades.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top