数据库中的自动编号 ID



当数据插入数据库时该怎么办,"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; }

属性"模因"表:

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设置为关闭时。

如何解决这个问题?

您有自动递增字段Id_mema。自动增量是使用 IDENTITY 关键字设置的。例外说:

Sql异常:无法在 中插入标识列的显式值 表"模因",当IDENTITY_INSERT设置为 OFF 时。

将数据

插入表时,无法为标识字段提供值。数据库引擎为Id_mema字段提供值(自动递增 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]
 [DatabaseGenerated(DatabaseGeneratedOption.None)]
 public int IdMema { get; set; }
 public string Autor { get; set; }
 public int? Like { get; set; }
 public int? Dislike { get; set; }

最新更新