RavenDB Linq操作无效.ToUpperInvariant()
本文关键字:ToUpperInvariant 无效 Linq 操作 RavenDB | 更新日期: 2023-09-27 18:19:25
我正尝试在带有RavenDB的LINQ查询中使用ToUpperInvariant()
。我得到一个InvalidOperationException:
无法理解如何翻译服务器.Name.ToUpperInvariant().
查询如下。需要做什么才能让我在这里按名字匹配?这在使用RavenDB的查询中可能吗?
public ApplicationServer GetByName(string serverName)
{
return QuerySingleResultAndCacheEtag(session => session.Query<ApplicationServer>()
.Where(server => server.Name.ToUpperInvariant() == serverName.ToUpperInvariant()).FirstOrDefault())
as ApplicationServer;
}
protected static EntityBase QuerySingleResultAndCacheEtag(Func<IDocumentSession, EntityBase> func)
{
if (func == null) { throw new ArgumentNullException("func"); }
using (IDocumentSession session = Database.OpenSession())
{
EntityBase entity = func.Invoke(session);
if (entity == null) { return null; }
CacheEtag(entity, session);
return entity;
}
}
由于异常状态,服务器不理解ToUpperInvariant()
。据我所知,RavenDB使用自定义的LowerCaseKeywordAnalyzer,因此默认情况下查询不区分大小写。有关更多详细信息,请参阅有关分析器的RavenDB文档。