0

我正在尝试使用标识键字段映射表。当我尝试保存时,我收到错误SQL0803 Duplicate key value specified

INSERT INTO libpjk/Audit(AuditId、AuditDate、UserId、Keys、ValBefore、ValAfter、FieldId)值(默认值、?、?、?、?、?、?)

我在想 AuditId 不应该出现在字段列表中,默认值也不应该在那里。我只是不知道该怎么做。

用于创建表的 SQL:

CREATE TABLE libpjk.Audit (
AuditId integer not null GENERATED ALWAYS AS IDENTITY 
   (START WITH 1, INCREMENT BY 1),
AuditDate timestamp not null,
UserId char(10)    not null,
FieldId integer    not null,
Keys varchar(50)   not null,
ValBefore varchar(50),
ValAfter  varchar(50),
CONSTRAINT libpjk.pk_Audit PRIMARY KEY(FieldId))

下面是 AuditId 在我的 Audit 类中的定义方式:

<Required()> Public Overridable Property AuditId As Integer

这是我的映射:

MyBase.New()
Table("libpjk/Audit")
LazyLoad()
Id(Function(x) x.AuditId).Column("AuditId").GeneratedBy.Identity()
References(Function(x) x.AuditField).Column("FieldId")
Map(Function(x) x.Timestamp).Column("AuditDate").Not.Nullable()
Map(Function(x) x.UserId).Column("UserId").Not.Nullable()
Map(Function(x) x.Keys).Column("Keys").Not.Nullable()
Map(Function(x) x.Value_Before).Column("ValBefore")
Map(Function(x) x.Value_After).Column("ValAfter")

谢谢你的帮助

4

0 回答 0