在程序包管理器中播种数据时遇到问题。
收到错误: 一个或多个实体的验证失败。请参阅' EntityValidationErrors'物业详情。
问题:
1)为什么它会在Fresh新数据库上运行(我将此解决方案连接到较旧的数据库,但我遇到了完全相同的问题,因此尝试从头开始创建数据库,并再次遇到相同的问题)。< / p>
2)据我所知,EntityValidationErrors是一个变种。 但我正在运行PM&gt; Database-Update -verbose方法,它不使用任何运行时?
我的意思是我很乐意看到它/调试它/但是我应该在哪里看到它? 如果没有涉及运行时,你怎么看这个变量?我在包管理器中收到错误。
答案 0 :(得分:1)
很明显
1)我的模型类的Id属性是String(意外)。
2)这阻止了在该列上设置“Auto_increment”。
3)因为在Seed()方法中,我依赖于自动增量 - 这就是它抛出验证错误的原因。
解决方案是添加
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
然后从Migrations文件夹中删除旧的迁移文件([Something] Migration.cs)。
然后删除表/重新创建表,或者如果需要,删除/重新创建数据库。
完成所有操作后,请务必再次启用迁移,并添加新的迁移。
之后,再次运行种子方法。这很好用。