将数据插入数据库时该怎么办,“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:当IDENTITY_INSERT设置为OFF时,无法在表'Memy'中为标识列插入显式值。”
怎么解决这个?
你有自动增量字段Id_mema
。使用IDENTITY关键字设置自动增量。例外说:
SqlException:当IDENTITY_INSERT设置为OFF时,无法在表'Memy'中为identity列插入显式值。
向表中插入数据时,无法为identity字段赋值。数据库引擎为Id_mema
-field赋值(自动递增0,1,2,3 ..)
以下应该工作(直接sql):
INSERT INTO MEMY(autor, like, dislike) values ('text',1,0)
如果是实体框架,请确保不要在代码中设置Id_mema
。
当您要插入如下所示的值时,您不需要传递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; }