L2SQL кажется великолепным, пока я придерживаюсь операций только для чтения. Как только мне нужно начать менять поля, все становится немного волосатым.
В частности, я столкнулся с двумя различными проблемами.
Сначала я пытаюсь заполнить таблицу произвольным количеством строк. Схема в основном не имеет значения, но у нее есть первичный ключ BIGINT, который является столбцом идентификаторов.
Поскольку первичный ключ является идентификатором, я не устанавливаю его перед вызовом Table.InsertOnSubmit () или Table.InsertAllOnSubmit (), и я получаю исключение DuplicateKeyException: «Невозможно добавить объект с ключом, который уже используется. "
Моя вторая проблема связана с необходимостью в LINQ, эквивалентном следующему оператору SQL:
UPDATE dbo.someTable SET someCol = 'someValue' WHERE pkValue = 20
Если я сначала запрашиваю нужную строку, а затем изменяю значение someCol перед DataContext.SubmitChanges (), все в порядке.
Однако я ищу решение, которое не требует, чтобы я сначала запросил строку. Другими словами, если первичный ключ является известным количеством, как это может быть выполнено?