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

相關問題