编程经验 NHibernate 与数据绑定
来源:岁月联盟
时间:2008-05-21
怎么办呢?这问题困惑了我很久,看来只能从新写一个集合类来实现数据绑定了(实现IBindingList
这是一个开源的NHibernate 扩展dll,专门为了支持complex binding做的。
具体使用方法,
1. 先吧NHibernate.Databinding.Dll 添加到项目中。
2. 把原有的集合类(bag) 替换成 BindingSet。
3. 使用 BindingSet.GetInstance
4. 在hbm 映像文件里面使用set 集合来指定BindingSet这个集合的类型。
5. 在hbm 文件里面指定使用 NHibernate.Databinding.dll 里面定义的accessor (当你存取你的object的时候,此accessor类被NHibernate 用来通过反射的途径从你的object的member variable 或者property中取值或者赋值,详细可以看Hibernate文档中hbm映像文件里 对access attribute的说明。)
贴一段我写的代码:
private BindingSet<Plot> plots = BindingSet.GetInstance<Plot>();
public BindingSet<Plot> Plots
{
get
{
return plots;
}
}Hibernate Mapping:
<set name="Plots" cascade="all" lazy="true" inverse="true"
access="NHibernate.DataBinding.BindingAccessor+CamelCase, NHibernate.DataBinding">
<key column="PVAuto" />
<one-to-many class="RWeb6.BO.FormationPressure.Plot, RWeb6.BO.FormationPressure" />
set>由于NHibernate.Databinding.BindingSet 这个类实现了 IBindingList











