鑑於此文檔類:RavenDB查詢使用LINQ和枚舉
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與t他下面的命令:
ds.Conventions.SaveEnumsAsIntegers = true;
但是,結果是一樣的。所有的作品,當我使用名稱或WaterTemp。 RavenDB是以這種方式支持枚舉還是完全錯誤?
不應該TeaType是int? – 2013-03-02 14:47:57
@ColinPear從C#的角度來看,枚舉TeaType在內部是一個int。 – Kai 2013-03-02 14:50:26
我明白了。我一直對這個道具的名字感到困惑 – 2013-03-02 14:54:56