小编Luc*_*cID的帖子

NHibernate导航器映射到复合键问题的一部分 - 遗留数据库使用

我们有一个我们无法改变的遗留数据库.我们正试图转移到NHibernate而不是旧的DataAccess层,这是一个垃圾,而且速度太慢.

它有这样的表:

GPI表有(PU_ID,PAR_ID,Data,Data2)列
BLOCK表有(GA_ID,Data,PAR_ID)列
COMPANY表有(PU_ID,Data)列

我为上面的表创建了这些映射:

GPI

<class name="GroupPartnerInterest" table="[GPI]">
    <composite-id >
        <key-property name="GroupId" column="PAR_ID" />
        <key-property name="CompanyId" column="PU_ID" />
    </composite-id>
    <property name="data" column="Data"/>
    <property name="data2" column="Data2"/>
    <many-to-one name="Company" fetch="select" cascade="none">
        <column name="PU_ID"/>
    </many-to-one>
    <set name="Blocks" cascade="none" inverse="true" fetch="select">
        <key property-ref="GroupId">
            <column name="PAR_ID"/>
        </key>
        <one-to-many class="Block"/>
    </set>
</class>
Run Code Online (Sandbox Code Playgroud)

<class name="Block" table="[BLOCK]" >
    <id name="BlockId" column="GA_ID" >
        <generator class="assigned"/>
    </id>
    <property name="data" column="Data"/>
    <property name="GroupId" column="PAR_ID"/>
    <set name="GroupPartnerInterests" cascade="all-delete-orphan" fetch="select">
        <key property-ref="GroupId">
            <column name="PAR_ID"/>
        </key>
        <one-to-many class="GroupPartnerInterest"/>
    </set>
</class>
Run Code Online (Sandbox Code Playgroud)

公司 …

nhibernate nhibernate-mapping legacy-database composite-id

6
推荐指数
1
解决办法
1635
查看次数