Nhibernate QueryOver:区分大小写的Like或Equals

Nhibernate QueryOver:区分大小写的Like或Equals,nhibernate,iqueryable,queryover,icriteria,Nhibernate,Iqueryable,Queryover,Icriteria,在线和堆栈溢出上有许多帖子讨论如何解决不区分大小写的问题。我想这是因为这些人的数据库默认区分大小写 SQLServer默认使用不区分大小写的排序规则,所以默认情况下我永远不会遇到这个问题 但不幸的是,我有相反的问题。我需要做一个一次性的区分大小写的equals或者类似的 我无法设置表的排序规则,因此理想情况下,我会运行类似这样的sql WHERE Column COLLATE Latin1_General_CS_AS = 'CaseSensitive' .Where(x=> x.Colu

在线和堆栈溢出上有许多帖子讨论如何解决不区分大小写的问题。我想这是因为这些人的数据库默认区分大小写

SQLServer默认使用不区分大小写的排序规则,所以默认情况下我永远不会遇到这个问题

但不幸的是,我有相反的问题。我需要做一个一次性的区分大小写的equals或者类似的

我无法设置表的排序规则,因此理想情况下,我会运行类似这样的sql

WHERE Column COLLATE Latin1_General_CS_AS = 'CaseSensitive'
.Where(x=> x.Column.ToLower() == variable.ToLower())
就我所知,我不明白为什么会有一种不敏感的感觉,因为我们肯定可以做这样的事情

WHERE Column COLLATE Latin1_General_CS_AS = 'CaseSensitive'
.Where(x=> x.Column.ToLower() == variable.ToLower())
但我的问题是无法以任何其他方式解决的,做上述拼贴改变

如果这是内置的,而不是必须编写sql查询,那就太好了


我是否错过了一些东西,或者真的没有办法做到这一点?

我想您可以创建一个从默认sql server方言派生的新方言,并注册一个执行区分大小写的新函数,如。然后你可以把它注册为LINQYeah的一个扩展,我也这么想——但我只是想知道我是否遗漏了什么?有了criteria api,你不必这么做,看吧,是的,只是想让QueryOver远离神奇的字符串。