我无法弄清楚如何使用多个条件创建IsLike查询。
criteria = criteria.Add(Restrictions.Like("IpAdress", "%" + request.Keyword + "%") ||
Restrictions.Like("MacAdress", "%" + request.Keyword + "%") ||
Restrictions.Like("al.SerialNumber", "%" + request.Keyword + "%"));
如何将上述查询翻译成IQueryOver格式?
谢谢!
答案 0 :(得分:6)
你还没有发布你的实体的样子,但你可以写下这些内容:
query.Where(Restrictions.Disjunction()
.Add(Restrictions.On<Type>(x => x.IpAddress).IsLike(request.Keyword))
.Add(Restrictions.On<Type>(x => x.MacAdress).IsLike(request.Keyword))
.Add(Restrictions.On<Type2>(x => x.SerialNumber).IsLike(request.Keyword)));
或者您可以使用||
运算符代替析取:
query.Where(
Restrictions.On<Type>(x => x.IpAddress).IsLike(request.Keyword) ||
Restrictions.On<Type>(x => x.MacAdress).IsLike(request.Keyword) ||
Restrictions.On<Type2>(x => x.SerialNumber).IsLike(request.Keyword));
以下是一些类似的问题以获取更多信息:
queryover and (x like 'a' or y like 'a')
QueryOver Or with Subquery