Я использую EF6 с сервером MySQL. Я пытаюсь динамически добавлять предложения WHERE на основе переменной null или нет.
Это мой код:IQueryable не добавляет инструкцию WHERE в SQL
using (var dbContext = new Entities())
{
IQueryable<Boxes> boxes = dbContext.Boxes;
if(this.Customer != null)
boxes.Where(box => box.CurrentCustomer == this.Customer);
if(this.IDs != null)
boxes.Where(box => this.IDs.Split(',').Any(id => id == box.ID.ToString()));
return new Response() { Success = true, Result = boxes.ToList() };
}
Однако данные не фильтруются ИНЕК и все строки из таблицы возвращаются. Кроме того, в MySQL журнал я вижу заявление, которое не включает в себя условие WHERE:
1994 Query SELECT
`Extent1`.`ID`,
`Extent1`.`CurrentCustomer`
FROM `Boxes` AS `Extent1`
Am Я с помощью IQueryable
неправильно?
Вы уверены, что '' this.Customer' и this.Ids' не нуль? –
В Linq '.Where' фактически возвращает результат. – Brandon
Абсолютно. Пошаговое отладка – Kimmax