在学NHibernate时,xml的配置经常弄得很不爽,现在记录几个以作记录。我在http://www4.it168.com/jtzt/shenlan/tech/NHibernate/里面的http://tech.it168.com/n/2007-03-22/200703220910228.shtml按照里面的步骤来,发现有几个错误。
1---Stone.Model.Person.hbm.xml(2,2): XML validation error: 未能找到元素“urn:nhibernate-mapping- 2.0:hibernate-mapping”的架构信息。
解决的方法是将类的mapping xml的“urn:nhibernate-mapping- 2.0"中的2.0-----------2.2
2---The following types may not be used as proxies:
Stone.Model.Person: method get_Id should be virtual
Stone.Model.Person: method set_Id should be virtual
Stone.Model.Person: method get_Name should be virtual
Stone.Model.Person: method set_Name should be virtual
Stone.Model.Person: method get_Id should be virtual
Stone.Model.Person: method set_Id should be virtual
Stone.Model.Person: method get_Name should be virtual
Stone.Model.Person: method set_Name should be virtual
解决的方法:
引起问题的原因:
NHibernate 1.2 默认为类启用了延迟加载功能
解决方法:
方法1.在映射文件 class 标签中添加 Lazy="false" 属性
例 <class name="Stone.Model.Person,Stone.Model" table="Person" lazy="false">
方法2.为每个实体类的属性成员 添加 “ virtual ” 修饰符;
例:
public virtual int id
{
get { return m_id; }
set { m_id = value; }
}
待续。。。。