使用asp.net+EF5.0練習的時候,遇到這樣一個問題:
對一個或多個實體的驗證失敗。有關詳細信息,請參見“EntityValidationErrors”屬性
但是感到很疑惑,去百度,說是關閉EF驗證,即可
修改:
SaveChanges前先關閉驗證實體有效性(ValidateOnSaveEnabled)這個開關
可以在 Controller層這樣關閉
db.Configuration.ValidateOnSaveEnabled = false; int count = db.SaveChanges(); db.Configuration.ValidateOnSaveEnabled = true;
或者在 DAL層,對整個系統關閉
/// <summary> /// 創建 EF上下文 對象,在線程中共享 一個 上下文對象 /// </summary> /// <returns></returns> public DbContext GetDbContext() { //從當前線程中 獲取 EF上下文對象 DbContext dbContext = CallContext.GetData(typeof(DBContextFactory).Name) as DbContext; if (dbContext == null) { dbContext = new IZhanShiEntities(); dbContext.Configuration.ValidateOnSaveEnabled = false; //將新創建的 ef上下文對象 存入線程 CallContext.SetData(typeof(DBContextFactory).Name, dbContext); } return dbContext; }
關閉之后,不報這個錯了,轉而報另外要給錯誤:
SqlException (0x80131904): 將截斷字符串或二進制數據。 語句已終止。
這才是問題所在 可以說 是你在操作數據庫的時候,有字段超過了數據庫里面 你字段的限制大小
查看代碼,果然有字段太長了。
修改,完畢