Как сравнить строки с nhibernate? - PullRequest
3 голосов
/ 20 декабря 2011

Я пытаюсь сделать что-то вроде:

Session.Query<VoiceMailNumber>()
            .Where(x => (x.From.CompareTo(number) > 0) &&
                  (x.To.CompareTo(number)) > 0)

Но это вызывает исключение System.NotSupportedException.

From и number являются строками.

Есть решение?

Ответы [ 2 ]

1 голос
/ 21 декабря 2011

Это решает это:

Session.CreateCriteria(typeof(VoiceMailNumber))
                .Add(Expression.Le("From", number))
                .Add(Expression.Ge("To", number))
                .UniqueResult<VoiceMailNumber>();

Я не очень доволен этим решением, но поскольку невозможно сравнивать строки с помощью запроса или запроса, оно должно будет это сделать.

0 голосов
/ 20 декабря 2011

Вы можете точно сравнить строку, используя этот синтаксис:

Session.Query<VoiceMailNumber>()
  .Where(x => x.From==number)
  .And(x=>x.To==number);

Переводится как:

select * from VoiceMailNumber where From='123456' and To='123456'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...