Сложные запросы с помощью NHibernate

У меня есть эта проблема: Когда я пытаюсь реализовать сложный поиск Айенде, найденный по адресу: http://ayende.com/Blog/archive/2006/12/07/ComplexSearchingQueryingWithNHibernate.aspx с графом объектов: Человек: М: 1 Адрес: М: 1 Улица: М: 1 Место: M: 1 Страна Я получаю следующую ошибку: NHibernate.QueryException: невозможно использовать подзапросы по критериям без прогноза. Я делаю это:

public List Find() 
{ 
    DetachedCriteria query = DetachedCriteria.For(); 
    AddAddressQuery(query); 
    return personRepository.Find(query);
} 

private void AddAddressQuery(DetachedCriteria query) 
{ 
     DetachedCriteria addressQuery = null; 
     if (!String.IsNullOrEmpty(SearchParams.HouseNumer)) 
     { 
         addresaQuery = DetachedCriteria.For
(); addresaQuery.Add(Restrictions.Eq("HouseNumer", SearchParams.HouseNumer)); } this.AddStreetQuery(ref addressQuery); if (addressQuery != null) { query.CreateCriteria("Address1", "address1").Add(Subqueries.Exists(addressQuery)); } } private void AddStreetQuery(ref DetachedCriteria query) { DetachedCriteria streetQuery = null; if (this.SearchParams.StreetId.HasValue) { streetQuery = DetachedCriteria.For(); streetQuery .Add( Restrictions.Eq("Id", this.SearchParams.StreetId.Value)); } if (streetQuery != null) { query = query ?? Query.CreateCriteria("Address1"); query.CreateCriteria("Street", "street").Add(Subqueries.Exists(streetQuery )); } }

Что я делаю не так? Пожалуйста, помогите

5
задан dotjoe 24 August 2010 в 18:57
поделиться