一对一NHibernate映射,其中所有字段映射到单个类中的属性

时间:2010-11-04 16:25:14

标签: nhibernate nhibernate-mapping

我的情况是数据库在两个表之间具有一对一的关系,这两个表一起清楚地表示相同的逻辑实体。

我想将这些表映射到同一个类,并将类的属性映射到BOTH表中的字段。 (I.E.而不是让一个班级组成另一个班级。)

所以如果表格如下:

表格Foo 列:Id(PK),描述,FavouriteCrispFlavour

表格栏 列:Id(PK),NumberOfArms,EyeColour

我希望我的班级看起来如下:

public class FooBar
{
  public virtual int Id {get;set;)
  public virtual string Description {get;set;)
  public virtual CrispFlavour FavouriteCrispFlavour {get;set;)
  public virtual int NumberOfArms {get;set;)
  public virtual EyeColour EyeColour {get;set;)
}

这种映射在NHibernate中是否可行?

2 个答案:

答案 0 :(得分:2)

是的,它被称为连接映射。您使用带有<join>属性的table元素组成多个表中的实体,例如:

<class name="MyClass">
  ...
  <join table="otherTable">
    <key column="MyClass_Id"/>
    <property name="propInOtherTable" />
  </join>
</class>

要获得完整(且更好)的说明,请参阅NHibernate documentation上的join mappings

答案 1 :(得分:0)

是的,我相信你只需要在HQL中指定连接。