Estoy tratando de consultar el OData utilizando el cliente .net para obtener los componentes Last Published dentro de un DateTime específico. Siempre está fallando con una excepción 'datetime' is not property of entity: 'com.tridion.storage.ComponentMeta'
Tridion OData Query con filtro Datetime - error: datetime no es propiedad de la entidad
var lastPubComponents = _client.Components
.Where(p => p.PublicationId == sitePubId && p.LastPublishDate > Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss")))
.ToList();
Al revisar la URL Odata construida parece que el siguiente y he intentado con la misma URL desde el navegador simplemente comprobar que tengo el mismo error que se espera.
URL Odata cuando trataba con LINQ
/cd_webservice/odata.svc/Components?$filter=PublicationId eq 59 and LastPublishDate ge datetime'2012-10-11T09:22:14'
me trató mediante la eliminación de la cadena datetime
de la URL anterior y se comprueba de nuevo desde el navegador. Esta URL funciona como se esperaba y obtengo los resultados correctos.
A continuación se muestra la URL (de trabajo w/fuera de fecha y hora)
/cd_webservice/odata.svc/Components?$filter=PublicationId eq 59 and LastPublishDate ge '2012-10-11T09:22:14'
Ese tipo de me lleva pensando que algo anda mal con LINQ y/o combinación de cliente .NET.
He intentado jugar con diferentes combinaciones de formato de fecha y hora y me sale el mismo error. Cuando revisé el estándar Odata, sugiero usar la cadena datetime
, pero ese es el problema con el que estoy teniendo problemas.
¿Alguien sabe cómo depurar/resolver esto desde el código LINQ? Cualquier ayuda será apreciada.
Abrí un ticket de soporte para lo mismo. Lo publicaré una vez que tenga una actualización. –
Estoy viendo http://www.odata.org/documentation/uri-conventions#FilterSystemQueryOption pero todavía no encuentro dónde el estándar OData sugiere usar 'DateTime' ... –