Кто-нибудь знает способ пакетирования запросов NHibernate с помощью NHibernate.Linq, как вы можете делать с объектами MultiCriteria и ICriteria?
С помощью MultiCriteria я могу создать что-то вроде этого:
var crit = session.CreateMultiCriteria()
.Add(session.CreateCriteria(typeof(Entity1)).Add(Restrictions.Eq("Property1","Value"))
.Add(session.CreateCriteria(typeof(Entity2)).Add(Restrictions.Eq("Property2","Value2"));
var result = crit.List();
var list1 = (IList)result[0];
var list2 = (IList)result[1];
Было бы неплохо, если бы я заменил вызовы CreateCriteria на вызовы Linq и получил что-то вроде этого:
var crit = session.CreateMultiCriteria()
.Add(session.Linq<Entity1>().Where(x => x.Property1 == "Value1")
.Add(session.Linq<Entity2>().Where(x => x.Property2 == "Value2");
var result = crit.List();
var list1 = (IList<Entity1>)result[0];
var list2 = (IList<Entity2>)result[1];
Мы используем API Linq для большинства других наших запросов, и было бы неплохо использовать тот же синтаксис Linq, когда нам нужно также выполнять запросы MultiCriteria.
Спасибо.