У меня проблема с Linq to SQL InsertOnSubmit, которая, похоже, работает только для первого элемента в таблице.Linq to SQL InsertOnSubmit для нескольких объектов
Например следующим:
var noteDetail1 = new NoteDetail() { Title = "Test Note Title 1", NoteText = "Test note" };
var waiverDetail1 = new WaiverDetail() { Title = "Test Waiver Title 1", NoteText = "Test waiver details text" };
var riskDetail1 = new RiskDetail() { Title = "Test Risk Title 1", NoteText = "Test risk details text" };
context.Notes.InsertOnSubmit(noteDetail1);
context.Notes.InsertOnSubmit(riskDetail1);
context.Notes.InsertOnSubmit(waiverDetail1);
context.SubmitChanges();
Я только получить первый объект («Test Примечание Заголовок 1»), вставленный в базу данных. Если я поместил SubmitChanges после каждого InsertOnSubmit, все строки будут успешно вставлены.
Вышеупомянутые типы наследуются от класса Note, поэтому вставляются в одну и ту же таблицу.
Я, однако, испытываю ту же проблему с не производными классами.
Я долгое время смотрел на это, но не могу найти то, что я сделал неправильно. Вся идея InsertOnSubmit/SubmitChanges заключается в том, что вы можете делать несколько изменений, поэтому должно быть что-то простое, что мне не хватает.
И вы получаете какое-либо исключение? – Jonathan
Никакого исключения, он просто не работает. Мне только что пришло в голову, что, возможно, это связано с тем, что поля Id являются автоматически увеличивающимися базами данных, привязанными к базе данных, поэтому Linq to SQL не может отличить их друг от друга. На самом деле, пока я просто пишу это, я готов поспорить, что это потому, что я превысил равный сравнению с Id. Я проверю это. – Darren