如何在Fluent nHibernate中使用ObservableCollection?

时间:2011-03-07 14:34:49

标签: c# wpf fluent-nhibernate

ObservableCollection<ItemPedido> Items

但现在在Fluent nHibernate我不知道如何使用它。 是否有一种简单的方法可以使用Fluent nHibernate的ObservableCollection? 我注意到有一个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 个答案:

答案 0 :(得分:3)

继续使用ObservableCollection<T>作为IList<T>的实施 - 无需更改业务代码。

所有你需要做的就是配置NHibernate在执行延迟加载时用NhibernateObservableCollection在内部替换IList<T>

我用过

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

来自Unofficial NHibernate Addins (unhaddins)

但是,任何其他NhibernateObservableCollection的实现都可以。

fluent-nibernate-with-wpf-convention-to-use-unhaddins-observablelisttypet-as-Default,你找到了我用来配置带有Fluent nHibernate的ObservableCollection的例子。

注意是否要使用uNhAddIns.WPF.Collections.Types.ObservableListType<T>:没有二进制分发,所以你必须自己从c#sourcecode编译uNhAddIns.WPF.dll。

答案 1 :(得分:2)

您可以使用本文中的代码 - http://www.codeproject.com/KB/WPF/WpfNhibernateToolkit.aspx,或者您可以添加自定义数据视图并将Items属性包装到另一个属性中,就像在此处完成的那样 - http://www.shawnduggan.com/?p=46http://www.shawnduggan.com/?p=84