ICriteria и Linq для NHibernate вместе

Как я могу создать один запрос, используя и ICriteria, и Linq? Пример:

var q = Session
.Query<T>()
.Where(x.Id == 1)
.ToCriteria()
.Add(Restrictions.Eq("Title", "Ayende @ Rahien"))
.List<T>();

person Vladimir Nani    schedule 29.03.2012    source источник


Ответы (1)


Я думаю, вы должны использовать для этого QueryOver:

var q = Session
.QueryOver<T>()
.Where(x.Id == 1)
.Add(Restrictions.Eq(Projections.Property<T>(x.Title), "Ayende @ Rahien"))
.List<T>();
person Anton    schedule 29.03.2012
comment
Спасибо за такой быстрый ответ! - person Vladimir Nani; 29.03.2012
comment
Принятый ответ вводит в заблуждение. Критерии и LINQ нельзя смешивать. Что происходит, так это то, что QueryOver является строго типизированной оболочкой для Criteria; оператор Where НЕ является LINQ. - person Diego Mijelshon; 31.03.2012