【问题标题】:System.Data.Entity.Validation.DbEntityValidationException:'validation of one or more entities failedSystem.Data.Entity.Validation.DbEntityValidationException:'一个或多个实体的验证失败
【发布时间】:2019-05-27 14:04:56
【问题描述】:

向数据库插入数据的问题:

例如:goods.GoodPhoto = "/Content/img/imageGood/"+imageName; 替换成这个:goods.GoodPhoto=""+imageName; 并且成功了。

    [HttpPost]
    public ActionResult AddGoods(Good goods)
            {
                HttpPostedFileBase image = Request.Files["image"];
                string SavePath = Server.MapPath("~/Content/img/imageGood/");
                string imageName = DateTime.Now.ToFileTime().ToString()+image.FileName;
                image.SaveAs(Path.Combine(SavePath, imageName));
                goods.GoodPhoto = "/Content/img/imageGood/"+imageName;
                goods.ShopID = Convert.ToInt32(Session["ShopID"]);
                db.Goods.Add(goods);
                db.SaveChanges();
                return RedirectToAction("Index", "Home");
            }

一旦我编码“goods.GoodPhoto = "/Content/img/imageGood/"+imageName;”然后它失败了。错误信息是:

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

【问题讨论】:

  • Exception.EntityValidationErrors 包含什么?
  • 对不起,我是大一新生
  • 为了给您一个很好的答案,如果您还没有看过How to Ask,它可能会对我们有所帮助。如果您可以提供minimal reproducible example,它可能也很有用。

标签: asp.net model-view-controller


【解决方案1】:

添加 try catch 以查找确切的错误消息

try
  {
     db.SaveChanges();                  

   }
 catch (DbEntityValidationException e)
 {
 foreach (var valErrors in e.EntityValidationErrors)
       {
         foreach (var errors in valErrors.ValidationErrors)
          {
            //here you will get property name and error message
                Trace.TraceInformation("Property: {0} Error: {1}", 
                                errors .PropertyName, 
                                errors .ErrorMessage);
          }                  

       }
   throw;                 
  }        

【讨论】:

  • 谢谢。那是一个很大的帮助。问题解决了。 ErrorMessage "字段GoodPhoto必须是字符串或数组类型,最大长度为"50"。
  • 很高兴为您提供帮助..!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-24
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
  • 2018-05-17
  • 1970-01-01
相关资源
最近更新 更多