2015-05-07 2 views
0

Я написал этот простой код для обновления столбца базы данных.Как обращаться с System.Data.Entity.Validation.DbEntityValidationException

  using (HRMSEntities context = new HRMSEntities()) 
     { 
      TBL_EMPLOYEE dataTicketInsert = new TBL_EMPLOYEE(); 
      dataTicketInsert = context.TBL_EMPLOYEE.Where(x => x.Id == inputEmployeeID).FirstOrDefault(); 
      dataTicketInsert.Ticket = ticketT; 
      context.SaveChanges(); 
     } 

Сообщение об ошибке: Исключение типа «System.Data.Entity.Validation.DbEntityValidationException» произошло в EntityFramework.dll, но не был обработан в пользовательском коде Дополнительная информация: Не удалось выполнить проверку одного или нескольких лиц. Дополнительную информацию см. В разделе Свойство EntityValidationErrors.

Как решить проблему?

+0

«Смотрите«EntityValidationErrors 'для более подробной информации. " –

ответ

1

Добавьте следующий код в класс DbContext, то в сообщении об ошибке проверки, вы сможете увидеть подробную информацию о проблеме проверки:

public override int SaveChanges() 
{ 
     try 
     { 
      return base.SaveChanges(); 
     } 
     catch (DbEntityValidationException ex) 
     { 
      var errorMessages = ex.EntityValidationErrors 
        .SelectMany(x => x.ValidationErrors) 
        .Select(x => x.ErrorMessage); 

      var fullErrorMessage = string.Join("; ", errorMessages); 

      var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage); 

      throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors); 
     } 
} 

Ссылка: https://stackoverflow.com/a/15820506/1845408