我有一个类似于下面的表结构:
AttributeKey (ID, Title)
AttributeValue (ID, AttributeKeyID, Value)
我的映射全部设置,以便如果我查询AttributeValue,它使用引用连接到AttributeKey(AttributeValue.AttributeKeyID = AttributeKey.ID),没问题...但是,我想查询AttributeKey表和LEFT加入到AttributeValue表中,这样我就可以得到所有的AttributeKeys以及与它们相关的任何值...如何在流畅的nHibernate中映射它?
基本上它与References映射相反。
编辑:我知道HasMany方法与References相反,但是使用它会引发我的属性没有实现UserCollectionType的异常
干杯
答案 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();
}
}