Próbuję wysłać zapytanie do OData za pomocą klienta .net, aby uzyskać składniki Last Published w określonym dniu DateTime. To jest zawsze niepowodzeniem z wyjątkiem 'datetime' is not property of entity: 'com.tridion.storage.ComponentMeta'
Tridion OData Query z filtrem Datetime - error: datetime nie jest własnością Entity
var lastPubComponents = _client.Components
.Where(p => p.PublicationId == sitePubId && p.LastPublishDate > Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss")))
.ToList();
Po sprawdzeniu konstruowanej OData URL wygląda na to, co następuje, a ja próbowałem z tego samego adresu URL z przeglądarki tak, aby dokładnie sprawdzić Mam ten sam błąd, który jest oczekiwany.
OData URL gdy próbowałem z LINQ
/cd_webservice/odata.svc/Components?$filter=PublicationId eq 59 and LastPublishDate ge datetime'2012-10-11T09:22:14'
Próbowałem usuwając łańcuch z powyższego adresu URL datetime
i sprawdzone od przeglądarce ponownie. Ten URL działa zgodnie z oczekiwaniami i uzyskuję poprawne wyniki.
Poniżej znajduje się adres URL (pracuje w/out datetime)
/cd_webservice/odata.svc/Components?$filter=PublicationId eq 59 and LastPublishDate ge '2012-10-11T09:22:14'
Tego rodzaju prowadzi mnie myśląc, że jest coś nie tak z LINQ i/lub kombinacji klienckim .NET.
Próbowałem grać z różnymi kombinacjami formatów Datetime i otrzymuję ten sam błąd. Kiedy sprawdziłem standard Odata sugeruję użyć ciągu znaków datetime
, ale to jest ten, z którym mam problemy.
Ktoś wie, jak debugować/rozwiązać ten problem z kodu LINQ? Każda pomoc zostanie bardzo doceniona.
Otworzyłem bilet wsparcia dla tego samego. Opublikuję go po otrzymaniu aktualizacji. –
Patrzę na http://www.odata.org/documentation/uri-conventions#FilterSystemQueryOption, ale nadal nie wiem, gdzie standard OData sugeruje użycie "DateTime" ... –