在带有种子实体的 table 中添加数据后出现重复键错误

Duplicate key error after adding data in a table with seeded entities

情况如下:我正在使用 .NET 5 和 Entity Framework。我有一个播种机,看起来像这样:

    public static void Seed(this ModelBuilder modelBuilder)
    {
        Entity[] entities = new Entity[]
        {
            new Entity
            {
                Id = 1,
                Description = "Test description 1"
            },
            new Entity
            {
                Id = 1,
                Description = "Test description 1"
            } 
        }
    }

我的实体如下,没什么特别的:

public class Entity 
{
    [Key]
    public ins Id { get; set; }

    public string Name { get; set; }

    public string Description { get; set; }
    
    public IList<AnotherEntity> AnotherEntity { get; set; } = new List<AnotherEntity>();
}

我想向数据库添加另一个实体(我正在使用 MySQL),不是直接从数据库中添加,而是使用 EF,但是当我尝试这样做时(调用 .SaveChanges()),我得到一个错误,说 PK 中存在重复,因为 EF 不理解这个 table.

中已经有数据

处理问题的最佳方法是什么?

谢谢!

我发现如果在 OnModelCreating 方法中添加:

    protected override void OnModelCreating(ModelBuilder builder)
    {
        builder.Entity<MyEntity>().Property(b => b.Id).ValueGeneratedOnAdd();
    }

数据库设法理解已经有种子数据并生成不重复的 ID。