当标识插入设置为关闭时,无法在 table 中为标识列插入显式值

Cannot insert explicit value for identity column in table when identity insert is set to off

我尝试填写 table 我通过 Microsoft SQL Management Studio 使用 EF Core 生成的值,因为该列表是预定义的,将来不需要编辑。我得到了我在 SSMS 控制台内的标题中写的错误。

我设法通过在将插入所有值的脚本上方编写 SET IDENTITY_INSERT Countries ON 来解决问题。

这个问题好像和主键属性有关。

我的问题是:如何使用 EF Core 方法而不是 SET IDENTITY_INSERT ON SQL 命令解决此问题,问题到底是什么?

问题table:

public class Country
{
    public string Code { get; set; }
    [Required]
    public int Id { get; set; }
    public string LongName { get; set; }
    [Required]
    public string Name { get; set; }
}

您需要将注释属性应用于 Id,它会完成工作

[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }