Nhibernate - QueryOver。 IsLike 具有多个条件

标签 nhibernate queryover

我不知道如何创建具有多个条件的 IsLike 查询。

criteria =  criteria.Add(Restrictions.Like("IpAdress", "%" + request.Keyword + "%") ||
            Restrictions.Like("MacAdress", "%" + request.Keyword + "%") ||
            Restrictions.Like("al.SerialNumber", "%" + request.Keyword + "%"));

如何将上面的查询转换为 IQueryOver 格式?

谢谢!

最佳答案

您尚未发布您的实体的外观,但您可以按照以下方式编写一些内容:

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));

这里有一些类似的 SO 问题以获取更多信息:
queryover and (x like 'a' or y like 'a')
QueryOver Or with Subquery

关于Nhibernate - QueryOver。 IsLike 具有多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11948563/

相关文章:

c# - NHibernate:选择元素包中有条目的项目

c# - 仅从集合中获取第一个元素

NHibernate JoinQueryOver 返回所有子类型条目

SQL 到带有子查询和分组的 nhibernate 内连接

c# - 流利的 NHibernate "Could not resolve property"

c# - NHibernate 中的 QueryOver 子项可为空

nhibernate - 如何在NHibernate hbm.xml映射文件中映射VARCHAR(MAX)列

c# - Fluent NHibernate 生成的列名别名太长

sql-server-2005 - 具有不连续索引列的 Nhibernate 列表映射

c# - Linq to NHibernate 存储库实现细节