I’m having a Request table (EF generated):
<code>public class Request
{
public int Id { get; set; }
public string Name {get; set; }
public virtual ICollection<AttendeeRequest> AttendeeRequests { get; } = new List<AttendeeRequest>();
}
</code>
<code>public class Request
{
public int Id { get; set; }
public string Name {get; set; }
public virtual ICollection<AttendeeRequest> AttendeeRequests { get; } = new List<AttendeeRequest>();
}
</code>
public class Request
{
public int Id { get; set; }
public string Name {get; set; }
public virtual ICollection<AttendeeRequest> AttendeeRequests { get; } = new List<AttendeeRequest>();
}
I also have a table for Attendees (EF Generated):
<code>public class Attendee
{
public int Id { get; set;}
public string Name { get; set; }
public virtual ICollection<AttendeeRequest> AttendeeRequests { get; } = new List<AttendeeRequest>();
}
</code>
<code>public class Attendee
{
public int Id { get; set;}
public string Name { get; set; }
public virtual ICollection<AttendeeRequest> AttendeeRequests { get; } = new List<AttendeeRequest>();
}
</code>
public class Attendee
{
public int Id { get; set;}
public string Name { get; set; }
public virtual ICollection<AttendeeRequest> AttendeeRequests { get; } = new List<AttendeeRequest>();
}
I also have the many-to-many table for them (EF Generated):
<code>public class AttendeeRequest
{
public int Id { get; set; }
public int RequestId { get; set;}
public int AttendeeId { get; set; }
}
</code>
<code>public class AttendeeRequest
{
public int Id { get; set; }
public int RequestId { get; set;}
public int AttendeeId { get; set; }
}
</code>
public class AttendeeRequest
{
public int Id { get; set; }
public int RequestId { get; set;}
public int AttendeeId { get; set; }
}
My task is to insert the request into the database with relation to Attendee.
I create a transaction, I insert the Request into the database, then I insert the attendees into the database, then, for their relation, I do this:
<code>foreach (var attendee in attendees)
{
var manyToManyRelationRecord = new AttendeeRequest()
{
AttendeeId = attendee.Id,
RequestId = requestToInsert.Id //this is the already inserted request, so it is going to have an ID
};
//Save changes code here
}
</code>
<code>foreach (var attendee in attendees)
{
var manyToManyRelationRecord = new AttendeeRequest()
{
AttendeeId = attendee.Id,
RequestId = requestToInsert.Id //this is the already inserted request, so it is going to have an ID
};
//Save changes code here
}
</code>
foreach (var attendee in attendees)
{
var manyToManyRelationRecord = new AttendeeRequest()
{
AttendeeId = attendee.Id,
RequestId = requestToInsert.Id //this is the already inserted request, so it is going to have an ID
};
//Save changes code here
}
This works, but its seems so “manual” for me. Can’t EF handle this insertion automatically? How would you solve this problem?
2