Lef*_*tyX 10 c# nhibernate queryover
我正在尝试使用QueryOver在nHibernate中构建一个简单的查询,但我希望它将所有内容转换为小写或忽略敏感:
Domain.User User = Session.QueryOver<Domain.User>()
.Where(x=>x.Login=="username")
.SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
更新:
有人建议问题可能在于DB的收集,但我从来没有遇到任何问题,这个脚本有效:
Domain.User User = Session
.CreateCriteria<Domain.User>()
.Add(Expression.Eq("Login", "username"))
.UniqueResult<Domain.User>();
Run Code Online (Sandbox Code Playgroud)
Sly*_*Sly 17
在QueryOver中,您可以使用以下内容:
Domain.User User = Session.QueryOver<Domain.User>()
.WhereRestrictionOn(x=>x.Login).IsInsensitiveLike("username")
.SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
小智 5
我的解决方法是使用一个表达式与一个投影相结合,所以一个不区分大小写等于没有任何魔术字符串可以使用查询
query.Where(Expression.Eq(Projections.Property(Of MyType)
(Function(x) x.Name), "something").IgnoreCase)
Run Code Online (Sandbox Code Playgroud)