在學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; }
}
待續。。。。