Я хочу отобразить один на много объектов Персона
and PersonAddress
public class Person{
public virtual int Id {get; set;} public virtual string FirstName {get; set;}
public virtual ICollection<PersonAddress> PersonAddress { get; set; }}
public class PersonAddress{
public virtual int Id {get; set;}
public virtual int PersonId {get; set;}
... }
Я не хочу иметь свойство объекта person в адресе. Он создает циклические ссылки и не требуется для моего приложения.
файл сопоставления выглядит следующим образом:
<class name="Person" table="Persons" >
<id name="Id" type="Int32" column="PersonId">
<generator class="identity"/>
</id>
<set name="PersonAddress" table="PersonAddress" lazy="true" fetch="join" outer-join="true" cascade="all-delete-orphan">
<key column="PersonId"></key>
<one-to-many class="PersonAddress"/>
</set>
</class>
<class name="PersonAddress" table="PersonAddress" >
<id name="Id" type="Int32" column="Id">
<generator class="identity"/>
</id>
<property name="PersonId" column="PersonId" type="Int32"/>
<property name="PhoneWork" column="PhoneWork" type="String"/>
</class>
при попытке вставить человека с личным адресом я получаю исключение. Потому что он пытается вставить PersonAddress с неверным идентификатором (по умолчанию -1, 0 и т. Д.).
в образцах, которые я обнаружил, указана обратная ссылка от ребенка к родителю