【发布时间】:2012-01-02 16:31:10
【问题描述】:
我正在尝试在带有 RavenDB 的 LINQ 查询中使用 ToUpperInvariant()。我收到 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;
}
}
【问题讨论】: