2

当我在迁移步骤中尝试update-database(打开Package Manager Console窗口并输入“update-database”命令)时,出现以下错误使用实体框架更新数据库迁移时,一个或多个实体的验证失败

System.Data.Entity.Validation.DbEntityValidationException:验证 对一个或多个实体失败。有关更多详细信息,请参阅“EntityValidationErrors”属性 。

我在Movie

public class Movie 
{ 
     public int ID { get; set; } 
     [Required] 
     [DisplayName("Name")] 
     public string MovieName { get; set; } 
     [Required] 
     [DisplayName("Type")] 
     public string MovieType { get; set; } 
     [DisplayName("Year")] 
     public int MovieProductionYear { get; set; } 
     [Range(1, 5)] 
     [DisplayName("Priority")] 
     public int priority { get; set; } 
     [DisplayName("NoOfWatches")] 
     public int NumberOfWatches { get; set; } 
     [DisplayName("isWatched")] 
     public bool isWatched { get; set; } 
     [Range(1, 10)] 
     [DisplayName("IMDB")] 
     public int IMDBRating { get; set; } 
     [DisplayName("Available")] 
     public bool Availability { get; set; } 
     [StringLength(50)] 
     [DisplayName("Comments")] 
     public string Comments { get; set; } 
     [DisplayName("Actor")] 
     public string Actor { get; set; } 
     [DataType(DataType.Date)] 
     public DateTime ReleasedDate { get; set; } 
    } 

和附加迁移类的新领域增加新的字段包含此上下方法

public override void Up() 
{ 
    AddColumn("dbo.Movies", "NumberOfWatches", c => c.Int(nullable: false)); 
    AddColumn("dbo.Movies", "ReleasedDate", c => c.DateTime(nullable: false)); 
} 

public override void Down() 
{ 
    DropColumn("dbo.Movies", "ReleasedDate"); 
    DropColumn("dbo.Movies", "NumberOfWatches"); 
} 

当我删除这两个领域并更新数据库种子方法成功运行

任何s uggestions?

谢谢。

+0

如果你使用**实体框架**,你可以看看我的答案[解决方案:“验证失败的一个或多个实体。有关更多详细信息,请参阅'EntityValidationErrors'属性](http://stackoverflow.com/questions/21486072/solution-for-validation-failed-for-one-or-more-entities-see-entityvalidatione/29031857#29031857)。希望这有助于... –

回答

0

对于NumberofWatches,种子方法是否包含零值?这是一个不可为空的int,你需要在种子中提供一个零(或其他整数值)。 类似的,ReleaseDate将在每个电影种子对象上都需要一个日期值,因为它也是不可空的。

+0

我已经为这些字段添加值 –

+0

您是否添加可为空的值?即一个可为空的int和一个可为空的DateTime?添加标准的非空值将仍然会引发错误。 – Judo

+0

@Judo感谢您的信息,它的帮助+1 :) – RajeshKdev

相关问题