Вопрос

У меня проблема с Linq для 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 Note Note 1»), вставленную в базу данных. Если я помещу Tublitchances после каждого InsertonSUBMIT, все строки успешно вставлены.

Вышеуказанные типы все наследуются от класса нот, поэтому вставляются в ту же таблицу.

Я, однако, испытываю ту же проблему с неидными классами.

Я провел много времени, глядя на это, но не могу найти то, что я сделал не так. Вся идея insertonsUbmit / Delmitchanges - это так, что вы можете сделать несколько изменений, поэтому я должен быть что-то простое, что мне не хватает.

Это было полезно?

Решение

Проблема заключалась в том, что у меня были преодоленные равны в моих классах сущности, чтобы сущности с тем же идентификатором считались одинаковыми. Очевидно, что LINQ для SQL используется в какой-то момент и получает результат, что все новые объекты равны (потому что все они имеют идентификатор 0).

Спасибо Джонатану за то, что я мой "Резиновая утка".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top