NHibernate One-To-One Mapping

Я новичок в NHibernate, так что пока мало знаком с сопоставлениями и т. Д., И я только что нашел сценарий, с которым мне нужна помощь.

У меня есть 2 столы:

Отзывы TaggedReviews

У меня есть 2 класса, которые выглядят следующим образом (я исключил неважные свойства для краткости):

Обзор

public virtual int ReviewId { get; set; }
public virtual TaggedReview TaggedReview { get; set; }
public virtual string Title { get; set; }
public virtual string Descrip { get; set; }

TaggedReview

public virtual int ReviewId { get; set; }
public virtual Review Review { get; set; }
public virtual string TaggedReviewDescrip { get; set; }

Мои файлы отображения XML NHibernate для этих таблиц / классов в настоящее время выглядят следующим образом (отредактировано для краткости):

Review.hbm.xml

<class xmlns="urn:nhibernate-mapping-2.2" name="Review" table="Reviews">
    <id name="ReviewId" unsaved-value="0">
        <column name="ReviewId"></column>
        <generator class="native" />
    </id>

    <property name="Title" not-null="true" />
    <property name="Descrip" not-null="true" />
    <one-to-one name="TaggedReview" class="TaggedReview" /> <!-- This is probably very wrong?! -->
</class>

TaggedReview.hbm.xml

<class xmlns="urn:nhibernate-mapping-2.2" name="TaggedReview" table="TaggedReviews">
    <id name="ReviewId">
        <column name="ReviewId"></column>
        <generator class="native"/>
    </id>
    <one-to-one name="Review" class="Review" /> <!-- This is probably very wrong?! -->
    <property name="TaggedReviewDescrip" not-null="true" />
</class>

Свойство ReviewId является ключом ключа для таблицы «Обзоры». Это FK в таблице TaggedReviews.

В таблице TaggedReviews ВСЕГДА есть 1 запись / строка для каждой записи / строки в таблице Reviews - ни больше, ни меньше.

Я также не был уверен в « TaggedReview ', поскольку в этой таблице НЕТ PK, только FK для таблицы Reviews (ReviewId), но похоже, что файлу сопоставления нужен элемент id, поэтому я тоже не был уверен в этом!

Кто-нибудь может посоветовать, как лучше всего настроить это сопоставление?

12
задан marcusstarnes 3 March 2011 в 11:37
поделиться