C# NHibernate嵌套类映射问题

C# NHibernate嵌套类映射问题,c#,nhibernate,mapping,C#,Nhibernate,Mapping,我有以下课程。如何为MainBranch.Id列编写映射文档。我在数据库中没有分支表,只想将BranchHid用于MAINBRANCHCODE。有什么想法吗 public class Bundle { public virtual Decimal Id { get; set; } public virtual BundleEntranceInformation Information { get; set; }

我有以下课程。如何为MainBranch.Id列编写映射文档。我在数据库中没有分支表,只想将BranchHid用于MAINBRANCHCODE。有什么想法吗

public class Bundle
        {
            public virtual Decimal Id { get; set; }       
            public virtual BundleEntranceInformation Information { get; set; } 
        }
    public class BundleEntranceInformation
        {
            public virtual Branch MainBranch { get; set; }      
        }
    public class Branch
        {
            public virtual short Id { get; set; }       
        }
我的映射文档:

<class name="PromissoryNotes.Server.Data.Bundle, PromissoryNotes.Server.Data" table="BUNDLE" lazy="true">
    <id name="Id" column="ID" type="Decimal">
      <generator class="increment" />
    </id>   
    <property name="Information.MainBranch.Id" column="MAINBRANCHCODE" type="short"></property>

  </class>

使用组件映射

<class name="BundleEntranceInformation">
  <component name="MainBranch">
    <property name="Id" column="MAINBRANCHCODE"/>
  </component>
</class>

使用组件映射

<class name="BundleEntranceInformation">
  <component name="MainBranch">
    <property name="Id" column="MAINBRANCHCODE"/>
  </component>
</class>

答案如下:)


答案如下:)


可以映射为:

<class name="MainClass" table="Main">
  <id name="MainKey" column="MainId" type="Int64">
    <generator class="identity" />
  </id>
  <many-to-one name="SubInstance" class="MainClass+SubClass" Column="SubId"/> 
</class>

<class name="MainClass+SubClass" table="Sub">
  <id name="SubKey" column="SubId" type="Int64">
    <generator class="identity" />
  </id>
</class>

所以加号是关键 (我相信JavaHibernate使用美元符号$)

可以映射为:

<class name="MainClass" table="Main">
  <id name="MainKey" column="MainId" type="Int64">
    <generator class="identity" />
  </id>
  <many-to-one name="SubInstance" class="MainClass+SubClass" Column="SubId"/> 
</class>

<class name="MainClass+SubClass" table="Sub">
  <id name="SubKey" column="SubId" type="Int64">
    <generator class="identity" />
  </id>
</class>

所以加号是关键
(我相信java hibernate使用美元符号$)是的,你是对的,我找到了,我需要使用组件,但不是这样。谢谢你的主意。答案如下:)是的,你是对的,我找到了,我需要使用组件,但不是这样。谢谢你的主意。答案如下:)