C# NHIbernate<;任何>;映射问题
我正在为一个电子商务网站使用NHibernate,很难得到一个简单的映射。本质上,我有一个ContactDetails实体,用于保存任何类型用户的联系人详细信息-买家/卖家/广告客户/等等。我使用“any”映射,允许单个表保存每种类型的联系人详细信息。ID写入联系人详细信息ID,类型(买方/卖方/广告客户)写入联系人详细信息类型字段,如下所示C# NHIbernate<;任何>;映射问题,c#,nhibernate,nhibernate-mapping,C#,Nhibernate,Nhibernate Mapping,我正在为一个电子商务网站使用NHibernate,很难得到一个简单的映射。本质上,我有一个ContactDetails实体,用于保存任何类型用户的联系人详细信息-买家/卖家/广告客户/等等。我使用“any”映射,允许单个表保存每种类型的联系人详细信息。ID写入联系人详细信息ID,类型(买方/卖方/广告客户)写入联系人详细信息类型字段,如下所示 <class name="ContactDetails" table="contact_details"> <id name="ID"
<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字段上联接。我已经尝试了所有可能的方法,但无论发生什么,我都无法将代码加入到正确的字段(联系\u details\u id)。有没有人尝试过这个,如果有,它是如何工作的?如果需要更多细节,请告诉我
提前感谢,
隐式多态性不支持JP
一对一
备选方案:
- 如果您没有超类(您可以称之为
),请创建方
和买方
的超类,使用隐式以外的任何策略映射层次结构,并使用常规的卖方
或一对一
关系,而不是多对一
(首选)任何
- 不要在
中映射关系,而是使用查询Buyer