我有两个通过多对多关系关联的对象,其中父对象始终具有相同的子对象,只是数量会改变。
这是它的建模方式:
public class Camp : BaseModel
{
[Key, DatabaseGenerated( DatabaseGeneratedOption.Identity ), Column( Order = 0 )]
public int CampID { get; set; }
[Required]
public string Name { get; set; }
[MaxLength( 50 )]
public string Location { get; set; }
public virtual ICollection<CampStaffPosition> CampStaffPositions { get; set; }
}
public class StaffPosition
{
[Key, DatabaseGenerated( DatabaseGeneratedOption.Identity ), Column( Order = 0 )]
public int StaffPositionID { get; set; }
public string Position { get; set; }
public virtual ICollection<CampStaffPosition> CampStaffPositions { get; set; }
}
public class CampStaffPosition : BaseModel
{
// This is a Join Table for a many-to-many relationship between Camps and StaffPositions
[Key, Column( Order = 0 )]
public int CampID { get; set; }
[Key, Column( Order = 1 )]
public int StaffPositionID { get; set; }
public virtual Camp Camp { get; set; }
public virtual StaffPosition Position { get; set; }
public int Quantity { get; set; }
}
营地将始终具有相同的StaffPositions,但数量将取决于营地。当我添加营地时,用户还应该为每个职位填写所需的数量,但是我在努力做到这一点上很挣扎。
首先,这是对这种情况进行建模的最好方法吗?其次,如何显示StaffPositions,以便用户可以添加数量?我尝试单独添加它们,但无法同时获得阵营和FK在联接表中的位置。抱歉,我真的很困惑。