在NHibernate QueryOver中使用IsLike

时间:2016-11-07 07:25:47

标签: nhibernate queryover

我知道它已经为这个错误提供了一些解决方案,但是我不知道为什么会出现这个错误。当我加载List而不进行过滤时,它可以工作。

if (searchString != "") {
            query = _pagedDataQueryProcessor.GetDefaultQuery<Data.Entities.Password>()
                .Where(
                Restrictions.Disjunction()
                    .Add(Restrictions.On<Data.Entities.Password>(x => x.Name).IsLike("%" + searchString + "%"))
                    .Add(Restrictions.On<Data.Entities.Password>(x => x.Description).IsLike("%" + searchString + "%"))
                    .Add(Restrictions.On<Data.Entities.Password>(x => x.PasswordText).IsLike("%" + searchString + "%"))
);

我发现了问题是什么

解决方案:

{{1}}

我改变了什么?我没有&#34;%&#34;。

这里我想过滤一个列表但是当我在输入中写了一些东西时,我总是得到一个空列表。

searchstring是过滤后的单词

data.entities.password是db

上的列表

有人可以帮助我吗?我不知道自己错了什么。

1 个答案:

答案 0 :(得分:1)

您需要添加通配符或向IsLike添加第二个参数。

...IsLike("%" + searchString + "%"))

您可以将通配符放在字符串中的任何位置,例如仅在开始时或仅在结束时。

或者

...IsLike(searchString, MatchMode.Anywhere)

您还可以使用MatchMode.StartMatchMode.End

相关问题