Я использую один экземпляр сценария DbContext
для теневого копирования всей копии база данных локально в приложении WPF. Я слышал, что это плохая практика, но моя база данных мала, и мне нужна ее полная копия локально, пока приложение работает.
Метод расширения для IQueryable
, Load ()
позволяет мне предварительно загрузить элементы DbSet <>
, чтобы я мог привязать вещи к свойству Local DbSet <>
. Данные в базе данных быстро меняются, поэтому я хочу SaveChanges ()
и перезагрузить все , даже объекты, которые уже отслеживаются. Повторный вызов метода Load ()
не обновляет элементы, которые отслеживаются, но не помечены как измененные, которые уже загружены.
Какой метод перезагрузки предварительно загруженных элементов в
является предпочтительным. 11135709] DbSet <> ? Я могу думать только о вызове SaveChanges ()
, затем просматриваю все записи и устанавливаю как отслеживаемые, так и исходные значения на текущие значения в базе данных, затем Load ()
любые новые объекты, которые могли быть добавлены. В моем сценарии невозможно удалить объекты, но мне, возможно, придется поддерживать удаление элементов в долгосрочной перспективе. Это не кажется правильным, должен быть способ бросить все и перезагрузить. Казалось бы, проще отказаться от контекста и начать заново, но все элементы в WPF уже привязаны к Local´ObservableCollection <>
, и это просто портит интерфейс.