(обратите внимание на ваш пункт "Еще один вопрос")
Entity Framework 4.1 предлагает новую функцию, которая особенно полезна в приложениях WPF - локальное представление контекста объекта. Он доступен через свойство Local
DbSet<T>
. Local
возвращает ObservableCollection<T>
, содержащий все сущности типа T
, которые в настоящее время присоединены к контексту (а не в состоянии Deleted
).
Local
полезен, потому что он автоматически синхронизируется с контекстом объекта. Например: вы можете запустить запрос для загрузки объектов в контекст ...
dbContext.Customers.Where(c => c.Country == "Alice's Wonderland").Load();
... и затем выставить объекты в контексте как ObservableCollection
...
ObservableCollection<Customer> items = dbContext.Customers.Local;
... и используйте это как ItemsSource
некоторого WPF ItemsControl. Когда вы добавляете или удаляете объекты в / из этой коллекции ...
items.Add(newCustomer);
items.Remove(oldCustomer);
... они автоматически добавляются / удаляются в / из контекста EF. Вызов SaveChanges
вставит / удалит объекты в / из базы данных.
Аналогично добавление или удаление объектов в / из контекста ...
dbContext.Customers.Add(newCustomer);
dbContext.Customers.Remove(oldCustomer);
... автоматически обновляет коллекцию Local
и запускает уведомления для механизма привязки WPF для обновления пользовательского интерфейса.
Здесь - обзор Local
в EF 4.1.