Многие-ко-многим с родителями, всегда имеющими одинаковые дочерние объекты - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть два объекта, связанных через отношение «многие ко многим», в которых родительский объект всегда будет иметь одинаковые дочерние объекты, изменится только количество.

Вот как это моделируется:

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, чтобы пользователь мог добавить количество? Я попытался добавить их по отдельности, но я не смог получить и лагерь, и позиции FK в таблице соединений. Я действительно запутался с этим, извините.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...