Как использовать ObservableCollection с Fluent nHibernate? - PullRequest
3 голосов
/ 07 марта 2011
ObservableCollection<ItemPedido> Items

Но сейчас в Fluent nHibernate я не знаю, как его использовать. Есть ли простой способ использовать ObservableCollection с Fluent nHibernate? Я заметил, что есть библиотека DLL NHibernate.Collection.Observable;

Но я не знаю, как заменить мой текущий код, который использует IList:

    public virtual IList<ItemPedido> Items
    {
        get { return _Items; }
        set { _Items = value; OnPropertyChanged(System.Reflection.MethodBase.GetCurrentMethod().Name.Substring(4)); /*OnPropertyChanged("Items");*/ }
    } private IList<ItemPedido> _Items;

как изменить приведенный выше код, чтобы он работал с Observable Collection и Fluent nHibernate?

Ответы [ 2 ]

3 голосов
/ 08 марта 2011

Продолжайте использовать ObservableCollection<T> в качестве реализации IList<T> - не нужно менять бизнес-код.

Все, что вам нужно сделать, это настроить NHibernate для внутренней замены IList<T> на NhibernateObservableCollection при выполнении отложенной загрузки.

Я использовал

uNhAddIns.WPF.Collections.Types.ObservableListType<T>

из Неофициальные дополнения NHibernate (unhaddins) для этого.

Но, вероятно, подойдет любая другая реализация NhibernateObservableCollection.

В fluent-nibernate-with-wpf-Convention-to-Use-unhaddins-observablelisttypet-as-Default вы найдете пример, который я использовал для настройки ObservableCollection с Fluent nHibernate.

Обратите внимание, если вы хотите использовать uNhAddIns.WPF.Collections.Types.ObservableListType<T>: для этого нет бинарного дистрибутива, поэтому вы должны сами скомпилировать uNhAddIns.WPF.dll из исходного кода c #.

2 голосов
/ 08 марта 2011

Вы можете использовать код из этой статьи - http://www.codeproject.com/KB/WPF/WpfNhibernateToolkit.aspx, или вы можете добавить собственное представление данных и обернуть ваше свойство Items в другое, как это сделано здесь - http://www.shawnduggan.com/?p=46 и http://www.shawnduggan.com/?p=84.

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