Я не знаю вашу схему полностью, но вы создаете или вставляете новый билет, а также создаете или вставляете трек-билет со ссылкой на билет, пока вы не установили или не получили идентификатор билета.
У этой строки еще нет идентификатора. Либо установите здесь идентификатор, либо создайте переменную Ticket и используйте этот идентификатор для ссылки на TrackTickets.
_context.Tickets.Add (new Ticket {ClientId = userId, Subject = viewModel.Ticket.Subject, TypeOfTicket = viewModel.Ticket.TypeOfTicket, ConcernedDept = viewModel.Ticket.ConcernedDept, Date = DateTime.Now});
Добавление не будет выполнено, так как TicketId не может быть связан с чем-либо (тикет с таким Id не был вставлен.
_context.TrackTickets.Add(new TrackTicket { ClientId = userId, TicketId = viewModel.Ticket.Id, StatusHelpDesk = "Received", DateHelpDeskReceived = DateTime.Now });
Способ, которым вы можете использовать это, если вы автоматически генерируете ticketId, следующий:
var newTicket = new Ticket {ClientId = userId, Subject = viewModel.Ticket.Subject, TypeOfTicket = viewModel.Ticket.TypeOfTicket, ConcernedDept = viewModel.Ticket.ConcernedDept, Date = DateTime.Now}
_context.Tickets.Add(newTicket);
_context.SaveChanges();
Если вы теперь повторно используете объект newTicket, у него будет идентификатор. Так что в добавлении для trackTickets используйте идентификатор newTicket
_context.TrackTickets.Add(new TrackTicket { ClientId = userId, TicketId = newTicket.Id, StatusHelpDesk = "Received", DateHelpDeskReceived = DateTime.Now });
Если вы не генерируете свой идентификатор билета автоматически, вы должны установить идентификатор при создании билета (добавить в контекст):
var newTicket = new Ticket { Id = viewModel.Ticket.Id, ClientId = userId, Subject = viewModel.Ticket.Subject, TypeOfTicket = viewModel.Ticket.TypeOfTicket, ConcernedDept = viewModel.Ticket.ConcernedDept, Date = DateTime.Now}