流利的NHibernate,多对多,从多对多表中为孩子设置属性

时间:2011-03-11 12:05:47

标签: nhibernate fluent-nhibernate

我有一个Subscriber对象,其中包含Provider个对象的列表。提供商可以属于许多订户,因此是多对多关系。这很好,除了Provider需要定义Status属性,但这不能存储在Provider表中,因为同一个提供者可能有不同的Status不同的订阅者,所以我将Status存储在多对多表中。目前我有一个基本的多对多映射:

HasManyToMany(s => s.Providers)
    .Table("SubscriberProviders")
    .ParentKeyColumn("SubscriberID")
    .ChildKeyColumn("ProviderID");

如何在多对多映射中设置Status的{​​{1}}属性?

非常感谢

2 个答案:

答案 0 :(得分:1)

您必须映射交叉引用表(NH当前为您生成),并更改提供者和订阅者之间的映射,而不是引用交叉引用表的任何一方的HasMany()。

答案 1 :(得分:1)

many-to-many映射不能拥有自己的属性,因此您必须将连接表映射到人工 ProviderSubscriber 实体,该实体将是one-to-many提供商。

有关变通方法的完整示例,请参阅Many-to-many relationships with properties