如何从两个不同的表填充一个类?

时间:2014-07-23 11:59:57

标签: c# nhibernate

我的.hbm.xml文件中有第二个代码:

  <class name="Order" table="tOrder">
    <id name="Id">
      <column name="Ref" sql-type="int"/>
      <generator class="native"/>
    </id>
    <property name="OrderNo" column="OrderNo"/>
    <property name="CustomerId" column="CustomerId"/>
    <join table="tOffer">
      <key column="Ref" unique="true"/>
      <component name="User" class="User" >
        <property name="Id" column="OfferId"/>
        <property name="UserName" column="UserName"/>
      </component>
      <component name="Driver" class="Contact">
        <property name="FirstName" column="FirstName"/>
        <property name="LastName" column="LastName"/>
        <property name="Email" column="DriverEMail"/>
        <property name="Fax" column="DriverFax"/>
        <property name="Phone" column="DriverTelephone"/>
      </component>
    </join>
    <join table="tActive">
      <key column="Ref" unique="true"/>
      <property name="Notes"/>
      <component name="Vehicle" class="Vehicle" >
        <property name="Company" column="Company"/>
        <property name="Model" column="Model"/>
        <property name="Specification" column="Specification"/>
        <property name="Car"  column="Car"/>
      </component>
    </join>
  </class>

一方面,一切都很好。另一方面,问题出在“汽车”领域。 它必须在Vehicle类中,但tActive表中不存在此字段。它存在于tOffer中。简单地将Car移动到Order类很简单,但我不需要这个字段。此外,我不能简单地将汽车移动到tActive表。所以有一个问题: 是否有可能以某种方式填充2个表中的组件? 可能会有类似的事情吗?

    <join table="tActive">
      <key column="Ref" unique="true"/>
      <property name="Notes"/>
      <component name="Vehicle" class="Vehicle" >
        <property name="Company" column="Company"/>
        <property name="Model" column="Model"/>
        <property name="Specification" column="Specification"/>
      </component>
    </join>
    <join table="tOffer">
      <key column="Ref" unique="true"/>
      <component name="Vehicle" class="Vehicle" >
        <property name="Car"  column="Car"/>
      </component>
    </join>

0 个答案:

没有答案