Решение для базы данных.Невозможно вставить значение NULL в столбец «Идентификатор» (сначала база данных)
Я использую две таблицы под названием User
и Profile
. Они оба используют uniqueidentifier
(SQL Server) в качестве основного ключа. Я так пусть User
автоматически получает свой собственный справ было Ид от:
Откройте свой файл EDMX.
Щелкните правой кнопкой по столбцу Guid для пользователя -> Свойства -> измените StoreGeneratedPattern на Identity.
Работал как очарование. Теперь я попытался сделать то же самое с Review
, но я получаю следующую ошибку каждый раз, когда я пытаюсь создать новую строку:
Не удается вставить значение NULL в столбец «Id», таблица «хххх .dbo.Profile '; столбец не допускает нулей. INSERT терпит неудачу. Заявление прекращено.
Если я не использую Identity
для StoreGeneratedPattern
для Profile
, он не генерирует уникальный идентификатор, а не только кучу нулей, которые приводят к дублированным ошибке при попытке создать новую строку снова.
Почему пользователь работает нормально, но не Profile
?
Я следил за этим руководством guide для обеих таблиц.
Ваше сообщение об ошибке ссылается на таблицу с именем «Профиль», а не «Профиль». Возможно ли, что вы ошибочно написали/назвали таблицу или класс, на которые он ссылается? –
Вы не можете использовать DatabaseGeneratedOption.Identity для столбцов uniqueidentifier (Guid). В столбцах руководства в СУБД никогда не будет автоинкремент, и поскольку вы изменили StoreGeneratedPattern на Identity, EF не будет передавать его в качестве значения, поскольку он ожидает, что он будет предоставлен СУБД. – DevilSuichiro
, чтобы он работал, измените StoreGeneratedPattern на None и установите допустимые значения Guid или измените тип данных. – DevilSuichiro