我有一些Querybuilder类用于构建并返回IQueryable<CarPricelistPrice>
或生成DTO以满足我的需求的一些实体(链接方法)
示例:
CarPriceListPriceBuilder.Create()
.TerminIntersect(from, to)
.OfficeId( officeId )
.PointInTime( DateTime.Now.AddDays(-1))
.Build()
.ToIQueryable()
My Build方法根据构建方法之前设置的条件生成IQueryable。
在CarPriceListPriceBuilder类中我定义了属性:
private IQueryable<CarPricelistPrice> carPricelistPriceQuery
和我的Build()方法的一部分:
....if (carCategoryId.IsNotNull())
{
carPricelistPriceQuery = carPricelistPriceQuery.Where(c => c.CarCategoryId == carCategoryId);
}
if (dateFrom != null && dateTo != null)
{
carPricelistPriceQuery = carPricelistPriceQuery.Where(c => c.DateFrom < dateTo.Value && c.DateTo > dateFrom.Value);
}....
所以在我的构建结束时,我已经准备好将IQueryable执行到数据库(.ToList())但是根据我的需要,我可能会调用.Any()或稍后添加一些额外的过滤器。
当我构建此查询时,我没有DBContext,所以我的问题是如何针对数据库运行carPricelistPriceQuery,或者如何将此查询附加到DBContext并运行.ToList()
或.Any()
或{{1 }}?
我正在阅读有关已编译的查询委托或将其存储到.FirstOrDefault()
但我无法让它工作的信息。