2013-07-15 4 views
0

Я пытаюсь отобразить записи в таблице хранения Azure на основе их полей «Время», которые являются объектами DateTime. Тем не менее, мне не повезло, когда я пытаюсь выполнить запрос на основе DateTime.Azure Storage Table query by DateTime не возвращает никаких результатов

Я попробовал различные условия, как:

  1. времени = g.Time
  2. time.Equals (g.Time)
  3. time.Ticks == g.Time.Ticks
  4. времени. ToString() == g.Time.ToString()
  5. time.ToString(). Равно (g.Time.ToString())

    DateTime time = Convert.ToDateTime(timePoint); 
        TableServiceContext tableServiceContext = tableClient.GetDataServiceContext(); 
        var query = from g in tableServiceContext.CreateQuery<MyEntry>(tableName) 
            where time.Ticks == g.Time.Ticks 
           select g; 
    

Успешно отображены записи на основе другого поля string, но теперь, когда я хочу использовать DateTime, он работает неправильно.

Нужно ли обрабатывать DateTime объектов по-разному? Есть ли хороший способ сделать это?

Спасибо!

Редактировать: Я проверил, что время равно хотя бы одной записи, когда я создаю записи, которые нужно положить в таблицу.

ответ

0

Я получил его на работу, делая время моего ключ раздела со следующим условием:

where g.PartitionKey.Equals(time.ToString("yyyyMMddHHmm")) 

Однако, я до сих пор не ясно, почему это работает в то время как другие методы поиска не работают ,

+0

Я думаю, что клавиша rowkey и partition - это простое строковое значение, и только сравнение строк может работать. Другие сравнения просто используют ToString() для сравнения. – Chandermani