如何处理这些实体..?

How to handle these entities..?

我有 3 个模型:

  1. Participant
  2. Event
  3. Enrollment

他们每个人在数据库中都有自己的表。目标是能够在一页上查看 Event 模型数据、Enrollment 模型数据并创建 Participant

注册显示 Participants 中谁被分配到 Event

问题:如何将 Participant 分配给 Event 以便我可以使用 Enrollment

P. S. 如果您需要更多信息,请告诉我。对于给您带来的不便,我们深表歉意...

public class Event
{
    public int ID { get; set; }
    public string Title { get; set; }   
    public DateTime Date { get; set; }
    public string Location { get; set; }
    public string Comment { get; set; }

    public ICollection<Enrollment> Enrollments { get; set; }
    //public ICollection<EventAssignment> EventAssignments { get; set; }

}

public class Participant
{
    public int ID { get; set; }      
    public string FirstName { get; set; }        
    public string LastName { get; set; }        
    public string PersonalCode { get; set; }      
    public string PaymentType { get; set; }       
    public string Comment { get; set; }

    public ICollection<Enrollment> Enrollments { get; set; }
}

public class Enrollment
{
    public int ID { get; set; }
    public int EventID { get; set; }
    public int ParticipantID { get; set; }

    public Participant Participant { get; set; }
    public Event Event { get; set; }
}

    //Creating Participant
    public async Task<IActionResult> OnPostAsync()
    {

        if (!ModelState.IsValid)
        {
            return Page();
        }

        _context.Participants.Add(Participant);
        await _context.SaveChangesAsync();

        return RedirectToPage("/Participants/Index");
    }

哇。多么简单 :D

public async Task<IActionResult> OnPostAsync(int id)
    {

        if (!ModelState.IsValid)
        {
            return Page();
        }

        _context.Participants.Add(Participant);
        await _context.SaveChangesAsync();

        // Just creating new Enrollment depending on page id for eventID
        // and  getting just created Participant.ID as ParticipantID
        var enr = new Enrollment()
        {
            EventID = id,
            ParticipantID = Participant.ID
        };

        _context.Enrollments.Add(enr);
        await _context.SaveChangesAsync();


        return RedirectToPage("/Participants/Index");
    }