流畅的nHibernate映射引用的另一面

时间:2011-05-23 07:58:09

标签: nhibernate fluent-nhibernate

我有一个类似于下面的表结构:

AttributeKey (ID, Title)
AttributeValue (ID, AttributeKeyID, Value)

我的映射全部设置,以便如果我查询AttributeValue,它使用引用连接到AttributeKey(AttributeValue.AttributeKeyID = AttributeKey.ID),没问题...但是,我想查询AttributeKey表和LEFT加入到AttributeValue表中,这样我就可以得到所有的AttributeKeys以及与它们相关的任何值...如何在流畅的nHibernate中映射它?

基本上它与References映射相反。

编辑:我知道HasMany方法与References相反,但是使用它会引发我的属性没有实现UserCollectionType的异常

干杯

1 个答案:

答案 0 :(得分:1)

这应该是AttributeKey ClassMap中的HasMany。你的课应该是这样的:

public class AttributeKey
{
    public int Id { get; set; }
    public string Title { get; set; }
    public IList<AttributeValue> AttributeValues { get; set; }
}

您的映射将如下所示:

public class AttributeKeyMap : ClassMap<AttributeKey>
{
    public AttributeKeyMap()
    {
        Id(x => x.Id, "ID");
        Map(x => x.Title);
        HasMany(x => x.AttributeValues)
            .KeyColumn("AttributeKeyID")
            .Inverse()
            .Cascade.AllDeleteOrphan();
    }
}