6
我试图在LINQ查询中使用ToUpperInvariant()
与RavenDB。我发现了一个出现InvalidOperationException:RavenDB Linq无效操作.ToUpperInvariant()
能不知道如何翻译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;
}
}
好吧,酷,我试图通过转换为大写比较,这甚至不是必要的。我只是尝试了它,没有转换,它的工作。谢谢! – 2012-01-02 17:17:23
谢谢!我试图做同样的事情;根本不知道这件事。卫生署。 – Darryl 2013-03-08 22:14:50
也期待“编程语言像”的比较行为,并遇到同样的问题。我想我应该预料到“数据库喜欢”比较,通常默认情况下会忽略大小写。谢谢! – 2016-10-14 05:14:37