NHibernate一对一映射

我是NHibernate的新手所以到目前为止我对映射等的接触有限,而且我刚刚遇到了一个需要帮助的场景。

我有2张桌子:

评论TaggedReviews

我有两个看起来像这样的类(为简洁起见我排除了非重要属性):

评论

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

           

TaggedReview.hbm.xml

          

“ReviewId”属性是“评论”表的PK。 它是’TaggedReviews’表中的FK。

对于评论表中的每个记录/行,TaggedReviews表中总共有1条记录/行 – 不多也不少。

我也不确定’TaggedReview’类,因为该表没有PK,只有一个FK用于评论表(ReviewId),但看起来映射文件需要一个id元素,所以不确定这个!

任何人都可以建议如何最好地配置此映射?

Ayende对这里的一对一映射有一个很好的解释。

在您的情况下,映射应该看起来像这样:

Review.hbm.xml

           

TaggedReview.hbm.xml

您很可能需要表中的主键,因为您不能对键和外键使用相同的列。

            

如果您不能或不想更改数据库,可以查看NHibernate映射 – 一对一(或一对零) 。