Фильтрация набора баз данных инфраструктуры сущностей перед назначением его в качестве источника данных

Я хочу иметь возможность делать то, что прокомментировано ниже, но я не могу понять, как это сделать. Я понимаю, почему мне нужно выполнить загрузку, а затем сослаться на локальную наблюдаемую коллекцию и установить ее как BindingList, чтобы изменения в сетке синхронизировались, но как я могу выполнить фильтрацию, которую я хочу сделать, прежде чем назначать его? Как и сейчас, мне нужно выполнить фильтрацию в сетке, а это не то, что я хочу делать.

Core.MyContext.SiteVisits.Load();
var siteVisits = Core.MyContext.SiteVisits.Local.ToBindingList();
//.Where(siteVisit => siteVisit.UPC == _site.UPC)
ugSiteVisits.DataSource = siteVisits;

Большое спасибо за любую помощь.

Переместите Where перед Load.

Gert Arnold 15.12.2020 15:28
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
82
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вместо того, чтобы загружать все посещения сайта, просто запросите те, которые вам нужны, и добавьте их в локальную коллекцию с помощью IQueryable<T>.Load().

Core.MyContext.SiteVisits.Where(siteVisit => siteVisit.UPC == _site.UPC).Load();
ugSiteVisits.DataSource = Core.MyContext.SiteVisits.Local.ToBindingList();

Хм, я, конечно, пробовал это, и, конечно же, это не сработало. IQueryable не поддерживает ToBindingList, что является моей проблемой. Извините, нет кредита для вашего ответа.

Don Bouchard 15.12.2020 21:27

Давид, большое спасибо за эту информацию! Новый метод observablecollection — это именно то, чего мне не хватало, и он работает в моей программе. Я не мог поверить, что это невозможно сделать, вы восстановили мою веру в EntityFramework/Linq.

Don Bouchard 15.12.2020 23:13

Черт, кажется, мне нужно забрать свою славу за это. Я протестировал свое приложение, чтобы изменить поле в строке в наборе баз данных, и это сработало нормально. Однако я удалил строку в другом тесте, и эта строка не удаляется в базе данных. Теперь я подозреваю, что метод расширения AsEnumerable не синхронизирует наблюдаемую коллекцию с EF. Помоги пожалуйста?

Don Bouchard 15.12.2020 23:19

В моих исчерпывающих усилиях, чтобы понять это, я нашел метод расширения, который должен был превратить неисчислимый диапазон в список привязок, показанный ниже. Это тоже не сработало, потому что изменения в сетке не отражались в базе данных и наоборот. общедоступный статический BindingList<T> ToBindingList<T> (этот диапазон IEnumerable<T>) { return new BindingList<T>(range.ToList()); }

Don Bouchard 15.12.2020 23:32

См. обновленный ответ для возможности использования DbSet<T>.Local для привязки.

David Browne - Microsoft 15.12.2020 23:50

Второе решение работает, первое нет. Еще раз спасибо за вашу помощь!

Don Bouchard 16.12.2020 16:51

Прохладный. Я забыл, почему .Local был там в первую очередь :)

David Browne - Microsoft 16.12.2020 17:35

Другие вопросы по теме

Pandoc: в файле .md, как изменить блок метаданных YAML и поместить измененный блок в формат уценки с помощью фильтра lua
Приложение React успешно компилируется и работает, но после перезагрузки страницы в браузере я получаю TypeError var.filter не является функцией
Показать элементы, соответствующие нескольким выбранным атрибутам данных
Как фильтровать с 2 или более условиями в laravel и vue js
NodeJs сравнивает два массива
Получить ключ (не индекс) из подходящей строки в ассоциативном массиве ассоциативных массивов
Создать формулу динамического массива (Excel), чтобы объединить несколько столбцов результатов в один столбец, который фильтруется и сортируется с использованием нескольких критериев?
Как отфильтровать значения одного np.ndarray по элементам другого
Фильтрация в зависимости от конкретных условий в строках
Как фильтровать электронные письма по дате получения с помощью Microsoft Graph API с Python