如何在Fluent nHibernate中使用ObservableCollection?

ObservableCollection Items 

但现在在Fluent nHibernate我不知道如何使用它。 是否有一种简单的方法可以使用Fluent nHibernate的ObservableCollection? 我注意到有一个DLL NHibernate.Collection.Observable;

但我不知道如何替换使用IList的当前代码:

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

如何更改上面的代码使其与Observable Collection和Fluent nHibernate一起使用?

继续使用ObservableCollection作为IList – 无需更改业务代码。

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

我用了

 uNhAddIns.WPF.Collections.Types.ObservableListType 

来自Unofficial NHibernate Addins(unhaddins) 。

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

在fluent-nibernate-with-wpf-convention-to-use-unhaddins-observablelisttypet-as-Default中,您可以找到我用来配置带有Fluent nHibernate的ObservableCollection的示例。

请注意,如果要使用uNhAddIns.WPF.Collections.Types.ObservableListType :没有二进制分发,因此您必须自己从c#sourcecode编译uNhAddIns.WPF.dll。

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