Sto provando a interrogare OData utilizzando il client .net per ottenere i componenti dell'ultima pubblicazione in un determinato DateTime. E 'sempre fallendo con un'eccezione 'datetime' is not property of entity: 'com.tridion.storage.ComponentMeta'
Tridion OData Query con filtro Datetime - errore: datetime non è una proprietà dell'Enità
var lastPubComponents = _client.Components
.Where(p => p.PublicationId == sitePubId && p.LastPublishDate > Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss")))
.ToList();
Quando ho controllato l'URL odata costruito sembra che la segue e ho provato con lo stesso URL dal browser solo per il doppio controllo ho ottenuto lo stesso errore che si prevede.
odata URL quando ho provato con LINQ
/cd_webservice/odata.svc/Components?$filter=PublicationId eq 59 and LastPublishDate ge datetime'2012-10-11T09:22:14'
ho provato rimuovendo la stringa datetime
dall'URL sopra e controllati dal browser di nuovo. Questo URL funziona come previsto e sto ottenendo i risultati corretti.
Di seguito si riporta l'URL (lavoro w/out datetime)
/cd_webservice/odata.svc/Components?$filter=PublicationId eq 59 and LastPublishDate ge '2012-10-11T09:22:14'
Questo tipo di mi porta a pensare che sia qualcosa di sbagliato con LINQ e/o combinazione di client .NET.
Ho provato a giocare con diverse combinazioni di formato Datetime e ottengo lo stesso errore. Quando ho controllato lo standard Odata, suggerisco di usare la stringa datetime
ma è quello con cui sto avendo problemi.
Qualcuno sa come eseguire il debug/risolvere questo dal codice LINQ? Qualsiasi aiuto sarà molto apprezzato.
Ho aperto un ticket di supporto per lo stesso. Pubblicheremo una volta che avrò un aggiornamento. –
Sto guardando http://www.odata.org/documentation/uri-conventions#FilterSystemQueryOption ma non trovo ancora dove lo standard OData suggerisce di usare "DateTime" ... –