Я начал свой набег на C# .NET и NHibernate, и я, наконец, застрял в исключении, я не могу понять, и Google не помогает.NHibernate Проблема дублирования класса/сущности
Я получаю NHibernate.DuplicateMappingException: Дублировать сопоставление класса/сущности в моем классе родителя. Ниже мой файл отображения для класса Родитель и молодежи класс, который использует класс Parent:
<?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, но я не вижу, что это проблема.
Звучит так, как будто это может быть правильно. В настоящее время я загружаю объект «Конфигурация» в сборке и создаю еще один внутри моего тестового класса, чтобы я мог экспортировать схему. Есть ли другой способ справиться с этим? –
Вы должны создать свою конфигурацию в одном месте, но проблема заключается в том, как вы добавляете сопоставления. Вы должны опубликовать код для этого. –
Хотя этот ответ не полностью довел меня до конечного результата, он действительно установил меня по пути. Если бы я разместил остальную часть своих HBM, я уверен, что это было бы выяснено. В Youth hbm я ссылаюсь на родителя и на другие классы. Поэтому, когда вы добавляете свои сборки в объект Configuration, вам нужно добавить объект Youth. По крайней мере, это то, что исправило мою проблему. –