【问题标题】:MySqlException: Duplicate entry for key 'aspnetusers.PRIMARY'MySqlException:键“aspnetusers.PRIMARY”的重复条目
【发布时间】:2021-09-17 13:00:51
【问题描述】:
【问题讨论】:
标签:
mysql
asp.net-core
entity-framework-core
【解决方案1】:
您可以在创建模型时进行设置:
-
使用以下属性(DatabaseGenerated...)装饰您的 id 属性。
public class Sites
{
[Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int SiteID { get; set; }
public string Name { get; set; }
............
}
-
或者使用 DbContext 中的 ModelBuilder 来完成。
public class CMSModels : DbContext
{
public DbSet<Sites> Site { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Sites>().Property(r => r.SiteID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
}
}
3.使用AUTO_INCREMENT:AUTO_INCREMENT属性可用于为新行生成唯一标识。
CREATE TABLE animals (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
PRIMARY KEY (id)
);