2017-02-13 17 views
0

Наконец-то отследила мою ошибку, которая является результатом запроса. У меня есть запрос nhibernate с использованием Restrictions.In. Проблема заключается в том, что запрос выполняется, если результаты не возвращаются немедленно. Есть ли другое ограничение, которое я могу использовать. Я знаю, если бы я писал запрос linq, я мог бы использовать .Any, чтобы вернуть значение bool, и оттуда есть что-то подобное, что я могу сделать в этом случае?Nhibernate Restrictions.In Ошибка

carMake передается в

 myQuery.JoinQueryOver(x => x.Car) 
      .Where(Restrictions.In("VIN", 
       Trades.Where(x => x.Car.Make.ToLower() == carMake.ToLower()) 
        .Select(x => x.Car.PrimaryVIN) 
        .ToList())); 
+0

Что такое 'Trades'? Другой объект? –

ответ

0

Предполагая, что Trades список объектов, которые можно использовать вместо .WhereRestrictionOn(). Попробуйте это (я разделяю код для лучшей читаемости):

var vinsWithCarMake = Trades 
    .Where(x => x.Car.Make.ToLower() == carMake.ToLower()) 
    .Select(x => x.Car.PrimaryVIN) 
    .ToList<string>(); 

var carAlias = null; 
var result = myQuery.JoinAlias(x => x.Car,() => carAlias) 
     .WhereRestrictionOn(() => carAlias.VIN).IsInG<string>(vinsWithCarMake) 
     .List();