Я новичок в 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; }
Мои файлы сопоставления NHibernate XML для этих таблиц / классов в настоящее время выглядят следующим образом (отредактировано для краткости):
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 ВСЕГДА есть 1 запись / строка для каждой записи / строки в таблице Reviews - не больше, не меньше.
IЯ также не был уверен в классе TaggedReview, так как в этой таблице нет PK, просто FK для таблицы Reviews (ReviewId), но, похоже, что для файла сопоставления нужен элемент id, поэтому в этом тоже не был уверен!
Кто-нибудь может посоветовать, пожалуйста, как лучше настроить это отображение?