2013-05-27 1 views
0

Ну, у меня есть довольно странное исключение, когда я пытаюсь вставить новое значение. Пожалуйста, см. attached files для дальнейшего изучения. Итак, я использую:Значение для PRIMARY KEY, признанного как NULL (первый код EF6)

  • SQL Server 2012

  • VS 2012 Update 2

  • EF6 Alpha 3 Code First

Проблема заключается в том, что я пытаюсь вставьте новое значение в простую таблицу с именем dbo.Worker2 (см. файл изображения Worker2 Table), который состоит из 2 столбцов: TableNumber и Name. Столбец TableNumber является первичным ключом целочисленного типа данных (см. Файл изображения «Основные свойства столбца»). Я установил последнюю версию EF6 alpha3 и попытаюсь вставить новое значение (см. Файл изображения VB.NET Code). Однако генерируется исключение: «Невозможно вставить NULL значение NULL в столбец« TableNumber », таблица Bonus.dbo.Worker2, столбец не допускает нулей. INSERT терпит неудачу». (см. файл изображения VS Exception).

Затем я решил посмотреть, что EF-запрос T-SQL отправляет на SQL Server с помощью SQL Server Profiler и был удивлен тем, что EF (EF) не отправил TableNumber (см. Файл изображений «Профилировщики»).

Это ошибка или я что-то пропустил?

ответ

0

Я думаю, что Первичный ключ не установлен в личность.

+0

Как вы можете видеть из "Primary Key свойства столбца" образ, это не личность. – JohnyL

3

По внешнему виду вам необходимо установить свой основной ресурс Worker2 как созданный без базы данных.

что-то вроде:

<Key, DatabaseGenerated(DatabaseGeneratedOption.None)> 
Public Property TableNumber As Integer 
+0

Свойство (x => x.TableNumber) .HasColumnName ("TableNumber"). IsRequired(). HasDatabaseGeneratedOption (DatabaseGeneratedOption.None); с использованием свободного API –

Смежные вопросы