Entity Framework Core: включение проблемы при использовании пространственных фильтров - PullRequest
1 голос
/ 08 апреля 2020

У меня есть метод, который сначала создает IQueryable для DbSet моего DbContext со всеми необходимыми предложениями включения.

Затем для каждого входного параметра в этом методе я проверяю, имеет ли оно значение, и если да, я получаю новый экземпляр IQueryable, добавляя предложение Where.

Все отлично работает, за исключением одного параметра. Если этот параметр имеет значение и предложение where «выполнено», то одно из включаемых значений, похоже, игнорируется. Я не видел никаких предупреждений о том, что этот параметр «Включить» игнорируется, поэтому я не знаю, действительно ли это произошло, но после ToListAsyn c () это свойство навигации моего объекта пустое (это список).

Этот список не является пустым после ToListAsyn c (), если этот заданный параметр c имеет значение null (то есть, Где не проходит через).

Я также заметил, что в отладке режим с точкой останова после проблем c Где (), если я установлю быстрый просмотр на своем IQueryable и вызову для него метод ToList (), я могу воспроизвести проблему. Теперь, в те же быстрые часы, я вызываю метод First (), у объекта, который я получаю, все его свойства навигации заполнены правильно. Повторный вызов метода ToList () теперь дает мне первый полностью заполненный объект списка, но не остальные.

Я надеюсь, что я объяснил это достаточно хорошо, потому что я не уверен, что у меня есть разрешение на опубликовать код (Я спрошу, если ответ будет положительным, я вернусь, чтобы проиллюстрировать немного больше).

Заранее спасибо тем, кто найдет время, прочитайте это.

...