c# – NHibernate中的多个连接映射
发布时间:2020-12-15 21:25:15 所属栏目:百科 来源:网络整理
导读:关于Stackoverflow的第一个问题. 使用JOIN映射属性后,我尝试将该属性用于第三个表中的另一个连接.问题是在生成的SQL中,第二个JOIN语句使用的是正确的列,但是来自原始表而不是第二个表. 这是映射 – class name="Core.Domain.NetHistoryMessage,Core" table="
关于Stackoverflow的第一个问题.
使用JOIN映射属性后,我尝试将该属性用于第三个表中的另一个连接.问题是在生成的SQL中,第二个JOIN语句使用的是正确的列,但是来自原始表而不是第二个表. 这是映射 – <class name="Core.Domain.NetHistoryMessage,Core" table="NHistoryIN" > <id name="ID"> <column name="ID"/> <generator class="assigned"/> </id> <property name="RecipientDuns" unique="true"> <column name="Recipient" unique="true"/> </property> <join table="DunsSites" optional="true" fetch="select"> <key column="Duns" property-ref="RecipientDuns" /> <property name="RecipientID" column="SiteID" unique="true" lazy="false"/> </join> <join table="Components" optional="true" > <key column="ComponentID" property-ref="RecipientID" /> <property name="RecipientName" column="ComponentName" unique="true" lazy="false"/> </join> 生成的SQL – SELECT this_.*,this_1_.SiteID as SiteID7_0_,this_2_.M_SNAME as M3_11_0_ FROM RNTransactionHistoryIN this_ left outer join DunsSites this_1_ on this_.Recipient=this_1_.Duns left outer join Components this_2_ on this_.SiteID=this_2_.ComponentID 我需要以下SQL – SELECT this_.*,this_2_.M_SNAME as M3_11_0_ FROM RNTransactionHistoryIN this_ left outer join DunsSites this_1_ on this_.Recipient=this_1_.Duns left outer join Components this_2_ on this_1_.SiteID=this_2_.ComponentID 我正在使用NHibbernate 3.2. 谢谢 解决方法
我试过同样的但从来没有让它工作. <加入>意味着只从原始表加入,而不是级联.最好将DunsSite声明为实体并使用< join>从那里到组件.然后你可以在NetHistoryMessage上介绍Convenienceproperties.
public string ComponentName { get { return DunsSite.ComponentName; } set { DunsSite.ComponentName = value; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |