我的情况是数据库在两个表之间具有一对一的关系,这两个表一起清楚地表示相同的逻辑实体。
我想将这些表映射到同一个类,并将类的属性映射到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中是否可行?
答案 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中指定连接。