本质上,每当我使用here所示的HasData方法使用EF Core播种数据时,如果我给每个播种的实体都指定一个ID,它只会允许我播种数据。我不必这样做,因为ID对于每个条目都会自动递增。但是,当我以这种方式对数据进行种子设置(手动指定ID)时,稍后添加非种子数据会引发异常,表明给定键已存在实体。当我不进行任何数据播种时,以后添加实体将按预期工作,而自动增量将工作。
以下是一些简化的示例代码来帮助解释我的问题:
模型类:
Fluent API配置方法:
添加新实体(使用存储库模式):
当我没有播种任何数据,但是如果播种任何数据时失败,则从Angular前端或通过Postman工作调用POST方法。调用0
时,会在complete方法期间引发异常。该异常表示ID为1的实体已经存在。该错误是有道理的,因为我已将ID为1的数据作为种子。
我的主要问题是,是否存在使用自动增量ID播种数据的正确方法?也许我配置不正确,导致指定了初始ID。
感谢您的帮助。如果我需要澄清任何事情,请告诉我。 WebAPI使用.Net Core 2.1.0编写,并使用EF Core 2.1.0。