2012-08-26 53 views
0

映射文件:NHibernate的拋出錯誤沒有留存爲:

<?xml version="1.0"?> 
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true"> 
    <class name="PlayHibernate.Employee, PlayHibernate" lazy="false"> 
     <id name="id" access="field"> 
      <generator class="native"/> 
     </id> 
     <property name="name" access="field" column="name"/> 
     <many-to-one access="field" name="manager" column="manager" cascade="all"/> 
    </class> 
</hibernate-mapping> 

我嘗試設置映射文件作爲資源,但只是改變了錯誤消息 「未處理的異常:NHibernate.MappingException:PlayHibernate.Employee .hbm.xml (5,31):XML驗證錯誤:命名空間'urn:nhibernate-mapp ing-2.2'中的元素'id'不能包含文本。 :命名空間'urn:nhibernate-mapping-2.2'中的元素'id'不能包含tex t。「

回答

3

第一個錯誤「沒有persister for ...」是未將映射文件設置爲嵌入式資源的結果。

當前錯誤與您的id定義有關。看起來您的<id>定義中有一些文字。也許有些不允許的空格?嘗試將其寫爲:

<id name="id" access="field" column="uid" generator="native" /> 

此外,如果這沒有幫助,請嘗試使用字段名稱以外的其他名稱。也許Id

+0

字段名稱不應該是一個問題。空白?我不知道。我猜他錯過了一個'<'字符,並沒有再次編譯dll。 –

+1

非常感謝您指出錯誤「No persister for」是因爲我的映射文件不是嵌入式資源。解決了我一直存在的問題。 –

0

在Visual Studio記得更改屬性:「編譯動作」您的.hbm.xml文件來:「嵌入式資源」

相關問題