Nhibernate Castle ActiveRecord有许多问题

Nhibernate Castle ActiveRecord有许多问题,nhibernate,castle-activerecord,Nhibernate,Castle Activerecord,我正在使用monorail/activerecord,我想知道当多对多表中除了两个外键之外还有一个值时,如何处理在多对多关系中添加项 例如,Business和Amency类具有多对多关系,因此有一个BusinessAmency表。如果BusinessAmency表只有外键BusinessId和AmencyID,则可以执行以下操作: [HasAndBelongsToMany(typeof(Amenity), Table = "BusinessAmenity", ColumnKe

我正在使用monorail/activerecord,我想知道当多对多表中除了两个外键之外还有一个值时,如何处理在多对多关系中添加项

例如,Business和Amency类具有多对多关系,因此有一个BusinessAmency表。如果BusinessAmency表只有外键BusinessId和AmencyID,则可以执行以下操作:

[HasAndBelongsToMany(typeof(Amenity),
          Table = "BusinessAmenity", ColumnKey = "businessid", ColumnRef = "amenityid", Cascade = ManyRelationCascadeEnum.None, Lazy=true)]
        public IList<Amenity> Amenities
        {
            get { return _amenities; }
            set { _amenities = value; }
        }
但是,如果BusinessAmency类有另一个名为“Value”的列,需要为每个关联设置该列,该怎么办?您不能再将便利设施对象添加到Business.professionals,因为您需要能够在businessament中设置Value属性

有人能提供一些关于你在ActiveRecord中是如何做到这一点的见解吗

谢谢!
Justin

将BusinessAmency映射到其自己的BusinessAmency类,例如(伪代码):

[ActiveRecord]
阶级商业{
[PrimaryKey]int-Id{get;set;}
[HasMany]ISet便利设施{get;set;}
}
[动态记录]
班级礼仪{
[PrimaryKey]int-Id{get;set;}
[HasMany]ISet业务{get;set;}
}
[动态记录]
商务舱{
礼仪礼仪{get;set;}
[BelongsTo]业务{get;set;}
[属性]int值{get;set;}
}
这在stackoverflow上已经讨论过多次:

business.Amenities.Add(amenity;
[ActiveRecord]
class Business {
    [PrimaryKey] int Id {get;set;}
    [HasMany] ISet<BusinessAmenity> Amenities {get;set;}
}

[ActiveRecord]    
class Amenity {
    [PrimaryKey] int Id {get;set;}
    [HasMany] ISet<BusinessAmenity> Businesses {get;set;}
}

[ActiveRecord]    
class BusinessAmenity {
    [BelongsTo] Amenity Amenity {get;set;}
    [BelongsTo] Business Business {get;set;}
    [Property] int Value {get;set;}
}