我需要使用 QueryOver 而不是 Linq,但我正在努力重新创建以下查询:
public IQueryable<AuctionItem> GetLiveAuctionItems(){
repository.Query<AuctionItem>().Where(IsInActiveAuction()
}
public static Expression<Func<AuctionItem, bool>> IsInActiveAuction()
{
var now = SystemTime.Now();
var expression = PredicateBuilder.True<AuctionItem>();
return expression.And
(x => x.Lots.Any(
z => z.Auction.StartTime < now && z.Auction.EndTime > now && !z.DateWithdrawn.HasValue
&& z.DateApproved.HasValue));
}
我意识到这会创建子查询,但是当我尝试使用 queryover 创建子查询时,会出现错误,说明需要进行预测。
任何帮助深表感谢。