Я хочу обновить данные, найденные в трех связанных таблицах в базе данных.Я на самом деле отправляю все необходимые данные в базу данных, но не могу их обновить.Я получаю [DbEntityValidationException: проверка не удалась для одного или нескольких объектов.См. Свойство EntityValidationErrors для получения дополнительной информации.] Исключение SQL.
Ниже приведено то, что у меня есть на самом деле
ViewModel ChauffeurVM:
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; }
}
Контроллер:
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");
}
}
Метод Dal:
public int UpdateChauffeur(ChauffeurVM chauffeur)
{
CHAUFFEUR c = new CHAUFFEUR();
try
{
c = ChauffeurParId(chauffeur.ChauffeurId);
c.NumeroPermis = chauffeur.NumeroPermis;
bdd.Entry(c).State = EntityState.Modified;
bdd.SaveChanges();
}
catch
{
throw;
}
//Try to assign the value chauffeur.Personne.PersonneId to the pId
int pId = chauffeur.Personne.PersonneId;
c.Personne = new PERSONNE();
PERSONNE p = detailsChauffeurparPersonneId(chauffeur.Personne.PersonneId);
try
{
if (p != null)
{
p.Nom = chauffeur.Personne.Nom;
p.Prenom = chauffeur.Personne.Prenom;
p.Sexe = chauffeur.Personne.Sexe;
p.Telephone = chauffeur.Personne.Telephone;
p.Photo = chauffeur.Personne.Photo;
p.LieuNaissance = chauffeur.Personne.LieuNaissance;
p.DateNaissance = chauffeur.Personne.DateNaissance;
p.CodePostal = chauffeur.Personne.CodePostal;
p.Adresse = chauffeur.Personne.Adresse;
p.Email = chauffeur.Personne.Email;
p.AdresseBoulot = chauffeur.Personne.AdresseBoulot;
p.AdresseDomicile = chauffeur.Personne.AdresseDomicile;
p.PersonneId = chauffeur.Personne.PersonneId;
bdd.Entry(p).State = EntityState.Modified;
bdd.SaveChanges();
}
else
{
}
}
catch
{
throw;
}
try
{
PIECEIDENTITE pi = detailsPieceIdentiteparPersonneId(chauffeur.Personne.PersonneId);
pi.NumeroPiece = chauffeur.NumeroPiece;
pi.LieuDelivrance = chauffeur.LieuDelivrance;
pi.DateDelivrance = chauffeur.DateDelivrance;
pi.DateExpiration = chauffeur.DateExpiration;
pi.Autorite = chauffeur.Autorite;
bdd.Entry(pi).State = EntityState.Modified;
bdd.SaveChanges();
}
catch
{
throw;
}
return c.ChauffeurId;
}
Я ожидаю обновления данных в базе данных.Но я получаю следующее исключение: [DbEntityValidationException: проверка не удалась для одного или нескольких объектов.См. Свойство EntityValidationErrors для получения дополнительной информации.]
Когда я добавляю точки останова, мне удается просмотреть все данные, отправленные из формы.Я не могу понять, какое поле имеет нулевое значение.
Пожалуйста, помогите, пожалуйста!