实体类型'IdentityUserLogin<string>' 需要在添加索引时定义主键

The entity type 'IdentityUserLogin<string>' requires a primary key to be defined when adding index

当我尝试向列添加索引时出现此错误。知道为什么以及如何解决这个问题。

这就是我在 AppDbContext 文件中添加索引的方式。

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Category>()
                .HasIndex(b => b.CategoryName).IsUnique();
        }

        public DbSet<Category> Categories { get; set; }

这是我要添加到索引中的模型。

public class Category
{
    public int CategoryId { get; set; }

    [Required]
    public string CategoryName { get; set; }

    public string Description { get; set; }

    public List<unitItem> itemList { get; set; }
}

我这里抛出错误

            AppDbContext context = applicationBuilder.GetRequiredService<AppDbContext>();
                if (!context.Categories.Any())
            {
                context.Categories.AddRange(Categories.Select(c => c.Value));
            }

当我尝试初始化我的数据库时

在您的 OnModelCreating 方法中调用基础 class。 IdentityDbContext 也使用 OnModelCreating 来配置其 classes(如 IdentityUserLogin<string>):

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    // Call the base class first:
    base.OnModelCreating(modelBuilder);

    modelBuilder.Entity<Category>()
        .HasIndex(b => b.CategoryName).IsUnique();
}