Пока что связь работает нормально (класс User
загружает соответствующий экземпляр UserRoles
, когда он присутствует), но при создании нового User
и установке его свойства Roles
на новый экземпляр UserRoles
UserRoles
объект не сохранен.
Вот мой сокращенный файл User.hbm.xml:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="DistrictObservations.User, DistrictObservations" table="users">
<cache usage="read-write" region="all" />
<id name="ID" column="id" type="int" unsaved-value="0">
<generator class="identity" />
</id>
<!-- snip -->
<one-to-one name="Roles" class="DistrictObservations.UserRoles, DistrictObservations" lazy="false" />
</class>
</hibernate-mapping>
А вот отображение UserRoles:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="DistrictObservations.UserRoles, DistrictObservations" table="user_roles">
<cache usage="read-write" region="all" />
<id name="UserID" column="user_id" type="int" >
<generator class="foreign">
<param name="property">User</param>
</generator>
</id>
<!-- snip -->
<one-to-one name="User" class="DistrictObservations.User, DistrictObservations" lazy="false" constrained="true" foreign-key="FK_user_roles_users" />
</class>
</hibernate-mapping>
Кто-нибудь получил идею, как сохранить объект UserRoles с User.ID в качестве его первичного ключа? Я просматривал документацию, и, честно говоря, она не особенно полезна.