我需要用流利的NHibernate建模一个朋友关系。我的公司型号有关联公司List<Company> Related
。企业之间的关系进行建模在我的数据库中的表,related
它看起来像这样:流利的NHibernate和朋友关系
customer_id | related_id
两个列是一个外键PK我customers
表。
问题是关系只为每一对保存一次(你称之为双向?)。
我能够改变表结构,如果它更容易以另一种方式解决。
我需要映射功能NHibernate这样,当我做customer.Related()
,它会生成一个查询,如:
SELECT * FROM companies LEFT JOIN related ON customer_id = id OR related_id = id
我一直在努力,在许多不同的方式映射此,我离尝试是:
HasManyToMany(x => x.Related)
.Inverse()
.ParentKeyColumn("customer_id")
.ChildKeyColumn("related_id")
.Table("relations")
.Cascade.All();
但是,这(当然)只有当customer_id匹配时映射。
我该如何解决这个问题?
编辑: 我认为它与Fluent NHibernate: How to create one-to-many bidirectional mapping?类似,但它没有多大帮助。
@Michael,谢谢你的回答。我已经有.Inverse()。还是我误解你? – alexn 2010-12-21 09:21:32