MySqlException:键“aspnetusers.PRIMARY”的重复条目
Posted
技术标签:
【中文标题】MySqlException:键“aspnetusers.PRIMARY”的重复条目【英文标题】:MySqlException: Duplicate entry for key 'aspnetusers.PRIMARY' 【发布时间】:2021-09-17 13:00:51 【问题描述】:注册用户时,提示主键重复,不正确。
是asp.net核心和实体框架核心中的一个项目,带有个人账户认证。
视频https://1drv.ms/v/s!AgN4j7ZVXF5IhQ9cZeQAQrasm7SS
数据库脚本和代码 https://1drv.ms/u/s!AgN4j7ZVXF5IhQx8bUUvqkQOIicz?e=ih063u
Img error
【问题讨论】:
不要让我们在网上四处搜寻、观看视频和下载您的项目代码,只是为了看看您的问题是什么。在此处发布相关代码以及任何可能相关的示例数据。见How to Ask 和minimal reproducible example 【参考方案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)
);
【讨论】:
以上是关于MySqlException:键“aspnetusers.PRIMARY”的重复条目的主要内容,如果未能解决你的问题,请参考以下文章
MySql.Data.MySqlClient.MySqlException:重复条目
找不到 MySql.Data.MySqlClient.MySqlException 插入查询错误
C# MySqlException:表不存在 - 数据库名称列出了两次