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;
    }
}

RavenDB Linq操作无效.ToUpperInvariant()

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

相关文章:
  • 没有找到相关文章