【发布时间】:2011-05-28 16:24:12
【问题描述】:
我需要用 Fluent NHibernate 建模朋友关系。我的公司模型与相关公司有List<Company> Related。公司之间的关系在我的数据库中建模为 related 表,如下所示:
customer_id | related_id
这两列都是我的customers 表中PK 的外键。
问题是每对关系只保存一次(你称之为双向吗?)。
如果以其他方式更容易解决,我可以更改表结构。
我需要映射 Fluent 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()。还是我误会了你?
标签: c# .net mysql nhibernate fluent-nhibernate