// i have 3 records - two with normal severity,one with Low severityusing (var session = store.OpenSession()){ session.Store(new TestObject { name = "o1",Severity = Severity.normal }); session.Store(new TestObject { name = "o2",Severity = Severity.Low }); session.Store(new TestObject { name = "o3",Severity = Severity.normal }); session.SaveChanges();}// this writes the Low severity record,it seems correctusing (var session = store.OpenSession()){ var data = session.query<TestObject>() .Where(o => o.Severity.In(new[] { Severity.Low })) .OrderBy(o => o.name).ToList(); data.ForEach(r => Console.Writeline(r));}// this writes also the Low severity record,it still seems correctusing (var session = store.OpenSession()){ var data = session.query<TestObject>() .Where(o => o.Severity.In(new[] { Severity.Low,Severity.High })) .OrderBy(o => o.name).ToList(); data.ForEach(r => Console.Writeline(r));}// this writes all records,still seems correctusing (var session = store.OpenSession()){ var data = session.query<TestObject>() .Where(o => o.Severity.In( new[] { Severity.High,Severity.Low,Severity.normal })) .OrderBy(o => o.name).ToList(); data.ForEach(r => Console.Writeline(r));}// but this does not write anything // despite there are 2 records with normal severityusing (var session = store.OpenSession()){ var data = session.query<TestObject>() .Where(o => o.Severity.In(new[] { Severity.High,Severity.normal })) .OrderBy(o => o.name).ToList(); data.ForEach(r => Console.Writeline(r));}// and this does not write anything either,// I just trIEd whether the order of values in the array mattersusing (var session = store.OpenSession()){ var data = session.query<TestObject>() .Where(o => o.Severity.In(new[] { Severity.normal,Severity.High })) .OrderBy(o => o.name).ToList(); data.ForEach(r => Console.Writeline(r));}
或者我在Ravendb / Lucene引擎中发现了一个错误?
编辑
我发现了另一件奇怪的事.它必须按照枚举成员的字母顺序执行某些 *** 作.当我将Severity.normal重命名为Severity.A时,最后两个查询的行为正确并返回结果.
当我将Severity.normal重命名为Severity.La时,它仍然有效(因为La< Low).但是当我将Severity.normal重命名为Severity.Lu(Lu> Low)时,它会中断并且最后两个查询不再返回结果.原始样本不起作用,因为正常>低.但我仍然想知道为什么会这样,因为它对我没有意义.
以上是内存溢出为你收集整理的c# – RavenDb“In”运算符如何工作?全部内容,希望文章能够帮你解决c# – RavenDb“In”运算符如何工作?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)