Я новичок в 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' является PK для таблицы 'Reviews'. Это FK в таблице "TaggedReviews".
В таблице TaggedReviews для каждой записи/строки таблицы отзывов есть ALWAYS 1 запись/строка - не более, не менее.
Я также не знал о классе TaggedReview, поскольку эта таблица имеет NO PK, просто FK для таблицы Reviews (ReviewId), но похоже, что файл сопоставления нуждался в элементе id там, поэтому не был уверен об этом тоже!
Кто-нибудь может посоветовать, как наилучшим образом настроить это сопоставление?