Jak ustawić wiele filtrów w magazynie magazynu Azure?Warunki wielu filtrów Przechowywanie tabel Azure
To co próbowałem:
string partitionFilter = TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "partition1");
string date1 = TableQuery.GenerateFilterCondition("Date", QueryComparisons.GreaterThanOrEqual, "31-8-2013T14:15:14Z");
string date2 = TableQuery.GenerateFilterCondition("Date", QueryComparisons.LessThanOrEqual, "31-8-2013T14:15:14Z");
string finalFilter = TableQuery.CombineFilters(partitionFilter, TableOperators.And, date1);
To nie działa, ponieważ TableQuery.CombineFilters()
trwa tylko 3 parametry. I potrzebuję dodatkowego parametru dla drugiej daty.
Moja druga próba:
string filter = "PartitionKey eq 'partition1' and Date ge datetime'31-8-2013T14:15:14Z' and Date lt datetime'31-8-2013T14:19:10Z'";
TableQuery<CustomEntity> query = new TableQuery<CustomEntity>().Where(filter).Take(5);
ta zwraca 400 bad request
. Ale jeśli usunę "datetime", uruchomi się, ale nie zwróci żadnych wyników, podczas gdy powinien zwrócić kilka 100 rekordów.
Według dokumentu this doc z msdn, w ten sposób należy sformatować datetime.
Mój wynik powinien być wszystkimi rekordami pomiędzy dwiema datami.
Jak mogę to ułatwić?
Próbowałem Twojego rozwiązania, kompiluje i działa, ale żadne rekordy nie są zwracane. Czy są jakieś specjalne "rzeczy", które muszę zrobić dla porównań typu "DateTime", o których wiecie? – Quoter
Wygląda na to, że istnieją różne wyliczenia dla każdego typu danych filtru, który robisz. A na razie jest to 'TableQuery.GenerateFilterConditionForDate'. I to załatwiło sprawę. Damith, czy możesz to ustawić w swojej odpowiedzi? – Quoter