由于实体验证异常而无法更新数据库中的数据-ASP.Net MVC

时间:2019-01-23 07:03:10

标签: c# asp.net-mvc-4

我希望更新数据库中三个相关表中的数据。我实际上正在将所有需要的数据发送到数据库,但是无法成功更新它们。我得到了[DbEntityValidationException:对一个或多个实体的验证失败。有关更多详细信息,请参见“ EntityValidationErrors”属性。] SQL异常。

以下是我实际拥有的

ViewModel ChauffeurVM:

getDeviceToken() {
    if (this.platform.is('ios')) {
      this.firebase.grantPermission()
        .then((success) => {
          if (success) {
            this.doGetDeviceToken();
          }
        });
    } else {
      this.doGetDeviceToken();
    }
   }

doGetDeviceToken() {
    this.firebase.getToken()
      .then((token) => this.setToken(token))
      .catch((error) => this.handleError(error));
    this.firebase.onTokenRefresh()
      .subscribe((token) => this.setToken(token));
  }

控制器:

public class ChauffeurVM
{
    public int ChauffeurId { get; set; }

    public virtual PERSONNE Personne { get; set; }
    public virtual PIECEIDENTITE PieceIdentite { get; set; }
    public string NumeroPermis { get; set; }
}

Dal方法:

            public ActionResult ModifierChauffeur(ChauffeurVM ChauffeurVM, HttpPostedFileBase postedPhoto, string Sexe)
    {
        CHAUFFEUR chauffeur = new CHAUFFEUR();

        ChauffeurVM.Personne.Sexe = Sexe;

        using (IDAL dal = new Dal())
        {
            ChauffeurVM.Personne.Photo = dal.UploadandGetImagePath(postedPhoto);
            chauffeur.ChauffeurId = dal.UpdateChauffeur(ChauffeurVM);
            return RedirectToAction("ListeChauffeur");
        }

    }

我希望更新数据库中的数据。但是我收到以下异常:[DbEntityValidationException:对一个或多个实体的验证失败。有关更多详细信息,请参见'EntityValidationErrors'属性。]

添加断点时,我成功处理了从表单发送的所有数据。我不知道哪个字段为空值。

请帮助!

1 个答案:

答案 0 :(得分:0)

您有一个DbEntityValidationException,它应将您指向引起此问题的成员。您应该按如下所示捕获DbEntityValidationException来获取验证消息。在EntityValidationErrors列表中查找更多信息。

try
{
}
catch(DbEntityValidationException ex)
{
   var firstErrorMessage = ex.EntityValidationErrors.First().ValidationErrors.First()
                   .ErrorMessage;
}