我已經開始進入C#.NET和NHibernate,我終於停留在我似乎無法解決的異常上,而Google並沒有提供幫助。NHibernate重複類/實體映射問題
我得到一個NHibernate.DuplicateMappingException:在我的父類重複類/實體映射。下面是使用父類的我的映射文件的父類和青少年類:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Surrix.Cerberus.YouthData"
namespace="Surrix.Cerberus.YouthData.Domain">
<class name="Parent">
<id name="parentId">
<generator class="guid" />
</id>
<property name="firstName" not-null="true" />
<property name="lastName" not-null="true" />
<property name="homePhone" />
<property name="parentEmail" />
<property name="relationshipToYouth" />
<!-- Address component that should map to the Address class -->
<component name="parentAddress">
<property name="street" />
<property name="state" />
<property name="zipCode" />
<property name="city" />
</component>
</class>
</hibernate-mapping>
這裏是少年班的相關部分(這是相當大)
<set name="YouthParents" table="YouthParents" cascade="none">
<key column="youthId" />
<many-to-many column="parentId" class="Parent"/>
</set>
除此之外,Youth類還有firstName和lastName屬性,但我看不出這是一個問題。
這聽起來像它可能是正確的。目前,我正在加載組件中的配置對象,並在單元測試類中創建另一個,以便我可以導出該模式。有沒有不同的方式來處理這個問題? – 2010-09-13 15:21:07
您應該在一個地方構建您的配置,但問題在於您添加映射的方式。你應該發佈代碼。 – 2010-09-13 15:48:50
雖然這個答案沒有完全讓我達到最終結果,但它確實讓我走上了這條路。如果我發佈了其餘的HBM,我相信它會被發現。在青少年時期,我參考了家長和其他班級。所以當你將組件添加到Configuration對象時,你只需要添加Youth對象。至少這是解決我的問題。 – 2010-09-17 23:40:44