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