如何在当前实体中使用多个属性引用行?

时间:2012-10-24 21:03:55

标签: fluent-nhibernate-mapping

我需要引用表中的一行而不是其主键,而是另外两列。如何在fluent-nhibernate中配置它?

我正在使用FluentNHibernate 1.3

示例:如果另一个表YY具有列foo和bar(假设数据类型为整数,如果有帮助),那么不是主键。我当前的类XX具有这些属性,我想从XX引用YY对象。如果本地成员是YYObject并且引用它的字段是XX.foo和XX.bar,我应该在ClassMap<XX>类中放入以下内容吗?

CompositeId(x => x.YYObject).KeyProperty(x => x.foo).KeyProperty(x => x.bar);

我也不太确定应该如何调整ClassMap<YY>类。如果你已经做过这些事情,我们可以使用一些指导。

我们正处理一个遗留的情况,所以我不能挥手让它全部消失。

1 个答案:

答案 0 :(得分:0)

如果可能的话,在两个属性周围定义一个Component

Component(x => x.Comp, c =>
{
    c.Map(x => x.Foo);
    c.Map(x => x.Bar);
});

并引用它

References(x => x.ParentObject)
    .KeyColumns.Add("parent_foo", "parent_bar");
    .PropertyRef(p => p.Comp);