EntityValidationErrors属性???一个或多个实体的验证失败。请参阅' EntityValidationErrors'物业详情

时间:2016-01-17 19:01:25

标签: c# entity-framework model-view-controller

在程序包管理器中播种数据时遇到问题。

收到错误: 一个或多个实体的验证失败。请参阅' EntityValidationErrors'物业详情。

问题:

1)为什么它会在Fresh新数据库上运行(我将此解决方案连接到较旧的数据库,但我遇到了完全相同的问题,因此尝试从头开始创建数据库,并再次遇到相同的问题)。< / p>

2)据我所知,EntityValidationErrors是一个变种。 但我正在运行PM&gt; Database-Update -verbose方法,它不使用任何运行时?

我的意思是我很乐意看到它/调试它/但是我应该在哪里看到它? 如果没有涉及运行时,你怎么看这个变量?我在包管理器中收到错误。

1 个答案:

答案 0 :(得分:1)

很明显

1)我的模型类的Id属性是String(意外)。

2)这阻止了在该列上设置“Auto_increment”。

3)因为在Seed()方法中,我依赖于自动增量 - 这就是它抛出验证错误的原因。

解决方案是添加

[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }

然后从Migrations文件夹中删除旧的迁移文件([Something] Migration.cs)。

然后删除表/重新创建表,或者如果需要,删除/重新创建数据库。

完成所有操作后,请务必再次启用迁移,并添加新的迁移。

之后,再次运行种子方法。这很好用。