Есть ли способ использовать Expression.In () без учета регистра? - PullRequest
1 голос
/ 26 января 2010

Я использую Expression.In () как часть критерия, использующего NHibernate, и я не могу найти способ игнорировать регистр. Кто-нибудь знает, как это можно сделать, или мне придется сделать это по-другому?

Не то чтобы это, вероятно, имеет большое значение, но вот пример того, как я использую Expression.In ()

ICriteria criteria = Session.CreateCriteria(typeof (Result))
    .Add(Expression.In("targetName", {'target1', 'target2'}));

1 Ответ

1 голос
/ 27 января 2010

Я думаю, что обработка дел отличается для каждого сервера БД. Например, по умолчанию сервер mssql нечувствителен к регистру. Так что либо проверьте этот параметр в вашей БД, либо перед сравнением преобразуйте все строки в верхние или нижние.

.Add(Restrictions.In(
    Projections.SqlFunction("lower", NHibernateUtil.String, Projections.Property("targetName")), 
    new object[] {"target1", "target2"} ))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...