Indexing RavenDB索引查询:类型为<;T>;()。不支持LastOrDefault()
我正在使用RavenDB 2.5.2879,我注意到了一个问题。那是虫子吗 当我使用FirstOrDefault()时,查询运行良好Indexing RavenDB索引查询:类型为<;T>;()。不支持LastOrDefault(),indexing,ravendb,Indexing,Ravendb,我正在使用RavenDB 2.5.2879,我注意到了一个问题。那是虫子吗 当我使用FirstOrDefault()时,查询运行良好 session.Query<QueryModel>("App/Entities").Where(x => x.Tag == "Clients").OfType<Client>().FirstOrDefault(); session.Query(“App/Entities”)。其中(x=>x.Tag==“Clients”)。of ty
session.Query<QueryModel>("App/Entities").Where(x => x.Tag == "Clients").OfType<Client>().FirstOrDefault();
session.Query(“App/Entities”)。其中(x=>x.Tag==“Clients”)。of type().FirstOrDefault();
使用LastOrDefault()时,出现异常“无法理解表达式:。其中(x=>(x.Tag==“Clients”))。类型为().LastOrDefault()
session.Query(“应用程序/实体”)。其中(x=>x.Tag==“客户端”)。of type().LastOrDefault();
这是出于设计。如果支持Last
和LastOrDefault
,Raven将不得不迭代一个可能很大的数据集,只返回一个项目
相反,请使用FirstOrDefault
并提供降序排序顺序
session.Query<QueryModel>("App/Entities")
.Where(x => x.Tag == "Clients")
.OrderByDescending(x => x.Something)
.OfType<Client>()
.FirstOrDefault();
session.Query(“应用程序/实体”)
.Where(x=>x.Tag==“客户端”)
.OrderByDescending(x=>x.Something)
第()类
.FirstOrDefault();
还需要考虑的是,如果没有某种排序顺序,即使是升序排序也有点毫无意义。如果您需要first或last,您应该首先应用排序顺序。这是设计的。如果支持
Last
和LastOrDefault
,Raven将不得不迭代一个可能很大的数据集,只返回一个项目
相反,请使用FirstOrDefault
并提供降序排序顺序
session.Query<QueryModel>("App/Entities")
.Where(x => x.Tag == "Clients")
.OrderByDescending(x => x.Something)
.OfType<Client>()
.FirstOrDefault();
session.Query(“应用程序/实体”)
.Where(x=>x.Tag==“客户端”)
.OrderByDescending(x=>x.Something)
第()类
.FirstOrDefault();
还需要考虑的是,如果没有某种排序顺序,即使是升序排序也有点毫无意义。如果需要“第一个”或“最后一个”,应首先应用排序顺序