Возврат объекта со связанными навигационными свойствами, объектами и фильтром - PullRequest
0 голосов
/ 27 марта 2020

Вот метод, над которым я работаю:

  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. Любой намек на то, как этого добиться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...