【问题标题】:MySqlException: Duplicate entry for key 'aspnetusers.PRIMARY'MySqlException:键“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 Askminimal reproducible example

标签: mysql asp.net-core entity-framework-core


【解决方案1】:

您可以在创建模型时进行设置:

  1. 使用以下属性(DatabaseGenerated...)装饰您的 id 属性。

        ​public class Sites
    
                 {
                     [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    
                     public int SiteID { get; set; }
    
                     public string Name { get; set; }
                        ............
                 }
    
  2. 或者使用 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)
);

【讨论】:

    猜你喜欢
    • 2017-02-17
    • 2014-12-30
    • 2013-05-08
    • 2023-04-03
    • 2012-04-05
    • 2011-11-11
    • 2012-07-23
    • 2013-09-30
    相关资源
    最近更新 更多