ICriteria.Добавить как ИЛИ - PullRequest
       3

ICriteria.Добавить как ИЛИ

1 голос
/ 07 сентября 2011

У меня есть следующий код:

foreach (CheckedListBoxItem item in cbAttributes.Items)
    {
        if (item.CheckState == CheckState.Checked)
            {
               if ((string)item.Value == "Category" || (string)item.Value == "Kgs" || (string)item.Value == "Mks" || (string)item.Value == "Author")
                    {
                        var alias = item.Value.ToString().Substring(0, 1);
                        criteria.CreateAlias(item.Value.ToString(), alias);

                        criteria.Add(Expression.Like(alias + ".Name", "%" + meTextToFind.Text + "%"));
                    }                       
            }
    }

Критерий после цикла выглядит следующим образом:

C.Name like %text% AND K.Name like %text%

Проблема в том, что мне нужно OR вместо AND. Как я могу это сделать?
PS. Версия Nhibernate: 1.2.1.400 .

1 Ответ

2 голосов
/ 07 сентября 2011
Expression.Or(Expression.Like("param", param), Expression.Like("param", param))

Если вам нужно более 2 выражений в выражении Or, отметьте этот пост (используя дизъюнкцию)

обновление

Описано здесь: Как создать операторы OR для NHibernate?

.Add(
  Expression.Disjunction()
    .Add(criteria)
    .Add(other_criteria)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...