休眠 Restrictions.In 错误

Nhibernate Restrictions.In Error

终于找到了我的错误,这是查询的结果。我有一个使用 Restrictions.In 的 nhibernate 查询。问题是如果没有结果 returned 查询立即抛出错误,一旦查询执行。我可以使用其他限制吗?我知道如果我正在编写一个 linq 查询,我可以使用 .Any 到 return 布尔值,然后从那里开始,在这种情况下我可以做类似的事情吗?

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

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