Я довольно новичок в RavenDB, так что извините, если мой вопрос звучит глупо. У меня есть класс, который содержит свойство DateTime. Я храню экземпляры этого класса в RavenDB. Я определил индекс следующим образом:
from doc in docs.Orders
from docItemsItem in ((IEnumerable<dynamic>)doc.Items).DefaultIfEmpty()
select new { Items_Price_Amount = docItemsItem.Price.Amount, Items_Quantity = docItemsItem.Quantity, Date = doc.Date }
http://dl.dropbox.com/u/3055964/Capture.GIF <- вот скриншот </p>
Вот определение класса:
public class Order
{
public DateTime Date { get; set; }
public IList<OrderItem> Items { get; set; }
public string CustomerId { get; set; }
public Order()
{
Items = new List<OrderItem>();
}
}
Теперь, когда я пытаюсь запросить RavenDB с указанным выше индексом, запрос вообще не дает результата.
var orders = session.Query<Order>("OrdersIndex").Where(o => o.Date > DateTime.Now).ToList(); // orders.Count == 0
Если я опускаю индекс из запроса, например:
var orders = session.Query<Order>().Where(o => o.Date > DateTime.Now).ToList(); // orders.Count == 128
создается временный индекс, и все работает как положено.
Кто-нибудь знает, что не так с моим запросом?
Спасибо.
UPDATE
Хорошо, я удалил поля Дата, Элементы, Цена, Сумма и Элементы, Количество через управляющую студию (показано на скриншоте), и теперь запрос работает нормально. Кто-нибудь есть идеи, почему? Какова цель явного определения этих полей?