WPF нарушает Entity Framework ObjectContext? - PullRequest
1 голос
/ 12 марта 2010

Я начинаю работать с Entity Framework 4 и готовлюсь написать демонстрационное приложение WPF, чтобы лучше изучить EF4. Мои LINQ-запросы возвращают IQueryable<T>, и я знаю, что могу перетащить их в ObservableCollection<T> с помощью следующего кода:

IQueryable<Foo> fooList = from f in Foo orderby f.Title select f;
var observableFooList = new ObservableCollection<Foo>(fooList);

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

Вот мой вопрос: я нарушаю ObjectContext, когда я перемещаю свой список foo в наблюдаемую коллекцию? Или, говоря иначе, при условии правильной обработки моего ObjectContext, будет ли EF4 правильно обновлять модель (и базу данных)?

Причина, по которой я спрашиваю, заключается в следующем: NHibernate отслеживает объекты на уровне коллекции. Если я перемещаю NHibernate IList<T> в наблюдаемую коллекцию, это нарушает механизм отслеживания изменений NHibernate. Это означает, что мне нужно сделать несколько очень сложных объектов, чтобы заставить NHibernate работать с WPF. Я смотрю на EF4 как на способ обойтись без всего этого.

Итак, чтобы заставить EF4 работать с WPF, это так же просто, как сбросить мои IQueryable<T> результаты в ObservableCollection<T>. Сохраняет ли это отслеживание изменений в моих объектах объекта EDM? Спасибо за вашу помощь.

1 Ответ

3 голосов
/ 12 марта 2010

Вам необходимо синхронизировать ObservableCollection с ObjectContext. Как это можно сделать, показывает пример BookLibrary WPF Application Framework (WAF) . Найдите коллекцию EntityObservableCollection.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...