我希望更新数据库中三个相关表中的数据。我实际上正在将所有需要的数据发送到数据库,但是无法成功更新它们。我得到了[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'属性。]
添加断点时,我成功处理了从表单发送的所有数据。我不知道哪个字段为空值。
请帮助!
答案 0 :(得分:0)
您有一个DbEntityValidationException,它应将您指向引起此问题的成员。您应该按如下所示捕获DbEntityValidationException来获取验证消息。在EntityValidationErrors列表中查找更多信息。
try
{
}
catch(DbEntityValidationException ex)
{
var firstErrorMessage = ex.EntityValidationErrors.First().ValidationErrors.First()
.ErrorMessage;
}