【发布时间】:2016-01-11 00:54:12
【问题描述】:
我正在将 NHibernate 用于电子商务网站,但很难让应该简单的映射工作。本质上,我有一个 ContactDetails 实体,用于保存任何类型用户的联系方式 - 买家/卖家/广告商/等。我使用“any”映射来允许单个表保存每种类型的contact_details。 ID 写入contact_details_id,类型(买家/卖家/广告商)写入contact_details_type 字段,如下所示。
<class name="ContactDetails" table="contact_details">
<id name="ID">
<generator class="hilo" />
</id>
<any name="Party" id-type="System.Int32" meta-type="System.String" cascade="all">
<meta-value value="buyer" class="Buyer" />
<meta-value value="seller" class="Seller" />
<column name="contact_details_type" />
<column name="contact_details_id" />
</any>
在我的买家映射中,我有一个一对一的联系方式,如下所示
<one-to-one name="ContactDetails" class="ContactDetails" cascade="all" />
这一切看起来都很好,我可以将联系人详细信息保存到数据库中。我的问题是,当我尝试从数据库加载买家时,没有返回 ContactDetails。生成的查询不是在contact_details_id 字段上连接,而是在contact_details 表的ID 字段上连接。我已经尝试了所有可能的方法,但无论发生什么,我都无法让代码加入正确的字段(contact_details_id)。有没有人尝试过,如果有,它是如何工作的?如果需要更多详细信息,请告诉我。
提前致谢,
日本
【问题讨论】:
标签: c# nhibernate nhibernate-mapping