То, почему я добираюсь, “Не может вставить явное значение для столбца идентификационных данных” в LINQ к SQL, когда я не указываю значение для столбца идентификационных данных?

2019 - примечание в июне: Это было первоначально ответом на другой ответ, не надлежащим ответом на этот вопрос. Никакая идея, почему это было выбрано как правильный ответ. Но так как upvotes разросся, и это - безусловно ответ № 1 на этот вопрос, это будет суммировать решения как ответ Wiki.

Собственный компонент глубоко клонирование

Это называют "структурированным клонированием", работает экспериментально в Узле 11 и позже, и надо надеяться приземлится в браузерах. См. этот ответ для получения дополнительной информации.

Быстрое клонирование с потерей данных - JSON.parse/stringify

, Если Вы не используете Date с, функции, undefined, Infinity, RegExps, Карты, Наборы, Блобы, FileLists, ImageDatas, разреженные массивы, Типизированные массивы или другие составные типы в Вашем объекте, очень простой один лайнер для глубокого клонирования объекта:

JSON.parse(JSON.stringify(object))

const a = {
  string: 'string',
  number: 123,
  bool: false,
  nul: null,
  date: new Date(),  // stringified
  undef: undefined,  // lost
  inf: Infinity,  // forced to 'null'
  re: /.*/,  // lost
}
console.log(a);
console.log(typeof a.date);  // Date object
const clone = JSON.parse(JSON.stringify(a));
console.log(clone);
console.log(typeof clone.date);  // result of .toISOString()

См. ответ Corban для сравнительных тестов.

Надежное клонирование, пользующееся библиотекой

Начиная с клонирования объектов, не тривиально (составные типы, циклические ссылки, функция и т.д.), большинство крупнейших библиотек обеспечивает функцию для клонирования объектов. не перестраивают колесо - если Вы уже пользуетесь библиотекой, проверьте, имеет ли оно функцию клонирования объекта. Например,

  • lodash - cloneDeep ; может быть импортирован отдельно через модуль lodash.clonedeep и, вероятно, Ваш лучший выбор, если Вы уже не пользуетесь библиотекой, которая обеспечивает глубокую функцию клонирования
  • AngularJS - angular.copy
  • jQuery - jQuery.extend(true, { }, oldObject) ; .clone() только клоны элементы DOM

ES6

Для полноты, обратите внимание, что ES6 предлагает два мелких механизма копии: Object.assign() и оператор .

распространения

5
задан FalconKick 5 August 2009 в 14:52
поделиться

5 ответов

Попробуйте установить для Только чтение значение истина .

0
ответ дан 14 December 2019 в 04:44
поделиться

добавить StoreGeneratedPattern = "Identity" в файл .edmx (просмотреть в редакторе txt)

4
ответ дан 14 December 2019 в 04:44
поделиться

Из здесь

Попробуйте установить для «Автоматически созданное значение» значение false

1
ответ дан 14 December 2019 в 04:44
поделиться

Как говорит @Martin, у меня была такая же проблема, хотя мне не пришлось удалять всю диаграмму, чтобы решить ее. Все, что мне нужно было сделать, это заставить диаграмму регенерировать код. Обычно это просто вопрос изменения чего-либо на диаграмме и повторного изменения. В более тяжелых случаях мне приходилось перезапускать VS или даже перезагружаться, чтобы заставить дизайнера регенерировать код.

0
ответ дан 14 December 2019 в 04:44
поделиться

У меня тоже была та же проблема, и удаление таблицы и ее чтение устранили ее. Я не знаю, что решение было некрасивым, оно определенно помогло и было очень быстрым. Это уродливо в том, что это ошибка в Linq-to-Sql и Visual Studio 2008 (в моем случае это может быть ошибка и в других версиях), но это, по крайней мере, приемлемая ошибка.

1
ответ дан 14 December 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: