У меня есть QueryOver от JoinQueryOver В Nhibernate 3.1
Класс Person имеет ассоциацию по классу идентификации (один-к-одному). Код - это поле класса Person, а FirstName - поле класса Identity.
var q = SessionInstance.QueryOver<Person>()
.Where(p => p.Code.IsLike(code,MatchMode.Start))
.Full.JoinQueryOver(p => p.Identity);
if (!String.IsNullOrEmpty(firstName))
q = q.Where(i => i.FirstName.IsLike(firstName, MatchMode.Anywhere));
return q.List<Person>();
этот результат верный, но есть проблема.Поиск не включает элементы по нулевому значению для поля Код в классе Person.Я исправил следующий запрос.
var q = SessionInstance.QueryOver<Person>()
.Full.JoinQueryOver(p => p.Identity);
if (!String.IsNullOrEmpty(Code))
q = q.Where(i => i.Person.Code.IsLike(code, MatchMode.Start));
if (!String.IsNullOrEmpty(firstName))
q = q.Where(i => i.FirstName.IsLike(firstName, MatchMode.Anywhere));
return q.List<Person>();
Теперь у меня возникла ошибка во время выполнения этого сообщения:
не удалось разрешить свойство: Identity.Code of: MyNameSpace.Domain.Entities.Идентичность
в запросе путем объединения двух классов. Как можно добавить два условия (где) с помощью if.
(if parameter != null)