Entity Framework 4.1 DbSet Reload

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

Метод расширения для IQueryable , Load () позволяет мне предварительно загрузить элементы DbSet <> , чтобы я мог привязать вещи к свойству Local DbSet <> . Данные в базе данных быстро меняются, поэтому я хочу SaveChanges () и перезагрузить все , даже объекты, которые уже отслеживаются. Повторный вызов метода Load () не обновляет элементы, которые отслеживаются, но не помечены как измененные, которые уже загружены.

Какой метод перезагрузки предварительно загруженных элементов в

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

11
задан Gleno 27 April 2011 в 05:26
поделиться