Платформа Объекта ADO.NET и столбцы идентификационных данных

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

50
задан abatishchev 21 December 2011 в 04:02
поделиться

5 ответов

Я знаю, что это сообщение довольно старо, но это может помочь следующему человеку, прибывающему, слышат через поиск Google "Платформы Entitiy" и "Идентификационных данных".

кажется, что Платформы Объекта действительно уважают сгенерированные сервером первичные ключи, как случай был бы то, если свойство "Identity" установлено. Однако модель стороны приложения все еще требует, чтобы первичный ключ был предоставлен в CreateYourEntityHere метод. Ключ, определенный здесь, удален на эти SaveChanges() вызов к контексту.

страница здесь дает подробную информацию относительно этого.

67
ответ дан Heretic Monkey 7 November 2019 в 10:57
поделиться

Необходимо установить спецификацию идентификационных данных столбцов идентификационных данных так, чтобы свойство (Is Identity) имело значение true. Можно сделать это в разработчике таблицы в SSMS. Тогда Вы, возможно, должны обновить модель данных объекта.

, Возможно, что то, что Вы подразумеваете под высказыванием "Первичного ключа, является столбцом идентификационных данных", или возможно Вы пропустили этот шаг.

4
ответ дан YeahStu 7 November 2019 в 10:57
поделиться

Платформа объекта знает и может обработать столбцы идентификационных данных.

Вашей проблемой может быть, возможно, не сам EF, но сгенерированный formview его. Попытайтесь удалить вход для столбца идентификационных данных от формы вставки и давайте посмотрим то, что происходит.

2
ответ дан Biri 7 November 2019 в 10:57
поделиться

Если все остальное перестало работать перед срыванием волос - пытаются удалить EntityModel и повторно импортировать из SQL Server. Если Вы настраивали ключи и отношения и полагались на 'модель обновления от базы данных', функция это - все еще немного багги в версии RC, которую я нашел - новый импорт может помочь.

2
ответ дан scotta 7 November 2019 в 10:57
поделиться

Платформа объекта не полностью понимает Идентификационных данных по некоторым причинам. Корректное обходное решение должно установить Метод set для того столбца к Частному. Это сделает, любой генерировал UI, понимают, что он не должен устанавливать значение идентификационных данных, так как для него невозможно установить частное поле.

1
ответ дан 7 November 2019 в 10:57
поделиться
Другие вопросы по тегам:

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