2017-02-13 6 views
0

Enfin traqué mon erreur qui est le résultat de la requête. J'ai une requête nhibernate en utilisant un Restrictions.In. Le problème est une fois que la requête s'exécute si aucune requête retournée ne renvoie d'erreur immédiatement. Y at-il une autre restriction que je peux utiliser. Je sais que si j'écrivais une requête linq, je pourrais utiliser le .Any pour retourner la valeur booléenne et partir de là est-il quelque chose de similaire que je peux faire dans ce cas?Nhibernate Restrictions.In Erreur

carMake est passé dans

 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

Qu'est-ce que 'Trades'? Une autre entité? –

Répondre

0

En supposant que Trades est une liste d'objets que vous pouvez utiliser à la place .WhereRestrictionOn(). Essayez ceci (je divise le code pour une meilleure lisibilité):

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();