Вот метод, над которым я работаю:
public IEnumerable<Models.Order> GetOrdersBySearchFilters(Contracts.SearchFilters filters)
{
IQueryable<Models.Order> query = orderDbContext.Orders;
string DocumentoAcquisto = filters.Code;
DateTime DataConsegnaDa = filters.ExpectedDeliveryDateFrom;
DateTime DataConsegnaA = filters.ExpectedDeliveryDateTo;
string TipoDocumento = filters.Type.FirstOrDefault();
string StatoOrdine = filters.State;
string Divisione = filters.WarehouseDivision;
string DivisioneFornitrice = filters.SupplierCode;
string CodiceMateriale = filters.MaterialCode;
DateTime DataOrdine = filters.CreationDate;
if (DocumentoAcquisto != null)
{
query = query.Where(p => p.Code == DocumentoAcquisto);
}
if (DivisioneFornitrice != null)
{
query = query.Where(p => p.SupplierCode == DivisioneFornitrice);
}
if (DataOrdine != null)
{
query = query.Where(p => p.CreationDate == DataOrdine);
}
if (DataConsegnaDa != null)
{
//the following filters gives me error
query = query.Where(p => p.Details.Where(d => d.ExpectedDeliveryDate >= DataConsegnaDa).ToList();
}
return query;
}
А именно, мне нужно создать динамический запрос c, который возвращает все ордера с их OrderDetails (свойство навигации Details) и фильтрует некоторые атрибуты ордера. по условию, а также фильтрует некоторые атрибуты OrderDetails по условиям. У меня проблема с фильтрами в свойствах orderDetails. Любой намек на то, как этого добиться?