NHibernate: Or-предложение с компонентами - PullRequest
0 голосов
/ 12 октября 2009

У меня есть два класса:

public class Person{

  public virtual string Name { get; set;}
  public virtual Address Address { get; set; }
}

public class Address{
  public virtual string Street { get; set; }
}

Теперь я хочу, чтобы NHibernate предоставил мне всех лиц, имя которых равно "Xyz" или Address.Street равно "Xyz".

Этот подход является и-соединением:

ICriteria criteria = session.CreateCriteria(typeof(Person));
criteria.Add(Expression.Eq("Name", "Xyz"))
.CreateCriteria("Address").Add(Expression.Eq("Street", "Xyz"));

То, что я хочу, это и-или-предложение.

Большое спасибо!Andy

1 Ответ

0 голосов
/ 12 октября 2009

Я всегда использовал HQL-запросы для этого - гораздо проще писать и читать (по крайней мере, если вы привыкли к SQL. Это что-то вроде этого:

IQuery query = session.CreateQuery("FROM Person p WHERE p.Name = :Name OR p.Address.Street = :Street");
query.SetParameter("Name", "Xyz");
query.SetParameter("Street", "Xyz");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...