RavenDB Linq无效操作.ToUpperInvariant()

Bob*_*orn 6 c# linq ravendb

我正在尝试ToUpperInvariant()在RavenDB的LINQ查询中使用.我收到了一个InvalidOperationException:

无法理解如何翻译server.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;
    }
}
Run Code Online (Sandbox Code Playgroud)

Tho*_*erg 8

正如异常所述,服务器无法理解ToUpperInvariant().据我所知,RavenDB使用自定义的LowerCaseKeywordAnalyzer,因此默认情况下查询不区分大小写.有关更多详细信息,请参阅有关分析器的RavenDB文档.