AutoNumber ID в базе данных - PullRequest
       22

AutoNumber ID в базе данных

0 голосов
/ 11 апреля 2019

Что делать, когда данные вставляются в базу данных, столбец «ID» имеет автонумерацию.Я пробовал это:

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int IdMema { get; set; }
public string Autor { get; set; }
public int? Like { get; set; }
public int? Dislike { get; set; }

Свойства таблицы "Memy":

CREATE TABLE [dbo].[Memy] (
    [Id_mema] INT  NOT NULL IDENTITY,
    [autor]   TEXT NULL,
    [like]    INT  NULL,
    [dislike] INT  NULL,
    PRIMARY KEY CLUSTERED ([Id_mema] ASC)
);

Когда я пытаюсь вставить данные, я вижу:

"SqlException: Невозможно вставить явное значение для столбца идентификаторов в таблице «Memy», если для параметра IDENTITY_INSERT установлено значение OFF. "

Как решить эту проблему?

Ответы [ 2 ]

1 голос
/ 11 апреля 2019

У вас есть поле автоинкремента Id_mema. Автоинкремент устанавливается с помощью ключевого слова IDENTITY . Исключение говорит это:

SqlException: невозможно вставить явное значение для столбца идентификаторов в таблица 'Memy', когда для IDENTITY_INSERT установлено значение OFF.

Когда вы вставляете данные в таблицу, вы не можете присвоить значение полю идентификации. Механизм БД присваивает значение полю Id_mema (автоинкремент 0,1,2,3 ..)

Следующее должно работать (прямо sql):

INSERT INTO MEMY(autor, like, dislike) values ('text',1,0)

, а в случае структуры сущностей, не устанавливайте Id_mema в своем коде.

0 голосов
/ 11 апреля 2019

Вам не нужно передавать значение Id_mema при вводе значений, как показано ниже.

INSERT INTO MEMY values ('kamilm',10,5);

ИЛИ

, если вы не хотите автоматически увеличивать столбец, тогдаизмените DatabaseGeneratedOption.Identity на DatabaseGeneratedOption.None, это позволит вам вставить значение в столбец Id (Key).

 [Key]
 [DatabaseGenerated(DatabaseGeneratedOption.None)]
 public int IdMema { get; set; }
 public string Autor { get; set; }
 public int? Like { get; set; }
 public int? Dislike { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...