【发布时间】:2010-06-19 17:07:17
【问题描述】:
我正在使用 monorail/activerecord 并且想知道当多对多表中除了两个外键之外还有一个值时,您如何处理在多对多关系中添加项目。
例如,Business 和 Amenity 类具有多对多关系,因此有一个 BusinessAmenity 表。如果 BusinessAmenity 表只有外键 BusinessId 和 AmenityId,那么您可以这样做:
[HasAndBelongsToMany(typeof(Amenity),
Table = "BusinessAmenity", ColumnKey = "businessid", ColumnRef = "amenityid", Cascade = ManyRelationCascadeEnum.None, Lazy=true)]
public IList<Amenity> Amenities
{
get { return _amenities; }
set { _amenities = value; }
}
然后像这样添加关联:
business.Amenities.Add(amenity;
但是,如果 BusinessAmenity 类需要为每个关联设置另一个名为“Value”的列,该怎么办?您不能再将 Amenity 对象添加到 Business.Amenities,因为您需要能够在 BusinessAmenity 中设置 Value 属性。
有人可以提供一些关于您如何在 ActiveRecord 中执行此操作的见解吗?
谢谢! 贾斯汀
【问题讨论】:
标签: nhibernate castle-activerecord