У меня возникли некоторые проблемы при попытке добавить объект в базу данных с помощью LINQ to SQL.
В моей базе данных три таблицы:
--------------------------------------------
tblShows
--------------------------------------------
ShowID | Name
--------------------------------------------
--------------------------------------------
tblShowEvents
--------------------------------------------
ShowEventID | ShowID | Name
--------------------------------------------
--------------------------------------------
tblShowEventAttendees
--------------------------------------------
ShowEventAttendeeID | ShowEventID | Name
--------------------------------------------
Шоу имеет много событий, а каждое событие имеет много участников.
У меня есть страница, на которой я создаю Шоу. На этой странице я добавляю события в шоу и участников к каждому событию, а затем сохраняю шоу сразу.
Вот мой код:
Show show = new Show();
show.Name = txtName.Text.Trim();
//add ShowEvents to Show
//showEventsList is a variable containing a List of ShowEvents
foreach (ShowEvent ev in showEventsList)
{
show.ShowEvents.Add(new ShowEvent
{
ShowID = show.ShowID,
Name = ev.Name
});
}
//Add ShowEventAttendees to each ShowEvent
//attendeesList is a variable containing a List of ShowEventAttendees
foreach (ShowEvent ev in show.ShowEvents)
{
foreach (ShowEventAttendee attendee in attendeesList)
{
ev.ShowEventAttendees.Add(new ShowEventAttendee
{
ShowEventID = ev.ShowEventID,
Name = attendee.Name
});
}
}
AppDataContext.DataContext.Shows.InsertOnSubmit(show);
AppDataContext.DataContext.SubmitChanges();
Проблема возникает во втором цикле foreach. Если я уберу это, Show и ShowEvents будут правильно добавлены в базу данных.
В чем здесь проблема?
РЕДАКТИРОВАТЬ для Джея:
Я попробовал это сейчас:
AppDataContext.DataContext.Shows.InsertOnSubmit(show);
AppDataContext.DataContext.SubmitChanges();
//Add ShowEventAttendees to each ShowEvent
//attendeesList is a variable containing a List of ShowEventAttendees
foreach (ShowEvent ev in show.ShowEvents)
{
foreach (ShowEventAttendee attendee in attendeesList)
{
ev.ShowEventAttendees.Add(new ShowEventAttendee
{
ShowEventID = ev.ShowEventID,
Name = attendee.Name
});
}
}
AppDataContext.DataContext.SubmitChanges(); //trying to update, error here
Но я получаю ту же ошибку в последней строке. Проходя через отладчик, ShowEventID больше не равен 0, но я получаю ту же ошибку.