У меня есть этот метод, который я использовал для вывода данных из CosmosDB:
async static Task ListData<T>(Expression<Func<T, Boolean>> predicate) where T : LogBase
{
var abc = await cosmosManager.GetDocumentItemsAsync<T>(predicate);
foreach (var a in abc)
Console.WriteLine(a.DateYYMMDD);
}
Когда я называю это здесь, он работает хорошо:
await ListData<LogFeedback>(x => x.Activity == "Feedback" &&
x.FeedbackType == 0 &&
x.Name == "N3");
Однако это не работает ( Счетчик равен 0, но должен быть> 0)
await ListData<LogFeedback>(x => x.Activity == "Feedback" &&
Int32.Parse(x.DateYYMMDD) < Int32.Parse("200321"));
Далее я попробовал это, и это не работает:
await ListData<LogFeedback>(x => x.Activity == "Feedback" &&
String.Compare(x.DateYYMMDD, "200320") < 0);
Я думаю, это может быть связано с тем, как он переводит параметр, как при проверке с помощью отладки, выглядит следующим образом:

Есть ли другой способ сделать простую проверку для <моя дата, которая представлена как YYMMDD или я что-то не так делаю. Я просто не вижу причины, по которой тест даты не работает. </p>
Вот код для GetDocumentItemsAsync
:
public async Task<List<T>> GetDocumentItemsAsync<T>(Expression<Func<T, Boolean>> predicate) where T : class
{
List<T> Items = new List<T>();
try
{
collectionLink = UriFactory.CreateDocumentCollectionUri(databaseId, collectionId);
var i = 1;
var query = client.CreateDocumentQuery<T>(collectionLink)
.Where(predicate)
.AsDocumentQuery();
while (query.HasMoreResults)
{
Console.WriteLine(i++);
var retrivedData1 = await query.ExecuteNextAsync<T>();
Items.AddRange(retrivedData1);
}
}
catch (DocumentClientException ex)
{
Debug.WriteLine("Error: ", ex.Message);
}
return Items;
}