Учитывая этот класс документа:
public class Tea
{
public String Id { get; set; }
public String Name { get; set; }
public TeaType Type { get; set; }
public Double WaterTemp { get; set; }
public Int32 SleepTime { get; set; }
}
public enum TeaType
{
Black,
Green,
Yellow,
Oolong
}
Я храню новый чай со следующим кодом:
using (var ds = new DocumentStore { Url = "http://localhost:8080/" }.Initialize())
using (var session = ds.OpenSession("RavenDBFirstSteps"))
{
Tea tea = new Tea() { Name = "Earl Grey", Type = TeaType.Black, WaterTemp = 99d, SleepTime = 3 };
session.Store(tea);
session.SaveChanges();
Console.WriteLine(tea.Id);
}
Чай будет успешно сохранен, но когда я пытаюсь запросить все черные чаи с помощью linq, я не получаю никаких результатов:
using (var ds = new DocumentStore { Url = "http://localhost:8080/" }.Initialize())
using (var session = ds.OpenSession("RavenDBFirstSteps"))
{
var dbTeas = from teas in session.Query<Tea>()
where teas.Type == TeaType.Black
select teas;
foreach (var dbTea in dbTeas)
{
Console.WriteLine(dbTea.Id + ": " + dbTea.Name);
}
}
Я также попытался сохранить Enum как Integer с помощью следующей команды:
ds.Conventions.SaveEnumsAsIntegers = true;
Но результат тот же. Все работает, когда я использую Name или WaterTemp. Поддерживает ли RavenDB Enums таким образом, или я совершенно не прав?
public TeaType @Type {get; set;}
- person Colin Pear   schedule 02.03.2013