2014-08-06 3 views
-1

У меня есть форма сообщения, где пользователь может ввести заголовок и описание для своего сообщения. Существует также кнопка отправки, которая снимает мой Submit_Post событие.удалять исключение при попытке отправить данные Azure db

Все, кажется, работает нормально, пока я не попытаюсь saveChanges() в моей базе данных.

protected void Submit_Post(object sender, EventArgs e) 
{ 
    using (website_dbEntities objEnt = new website_dbEntities()) 
    { 

     Post postData = new Post() 
     { 
      PostTitle = txtPostTitle.Text, 
      PostDescription = txtPostDescription.Text, 
     }; 

     //Add post data to db 
     objEnt.Posts.Add(postData); 
     objEnt.SaveChanges(); //hits exception here 
    } 
} 

Это исключение я получаю:

Исключение типа «System.Data.Entity.Infrastructure.DbUpdateException» произошло в EntityFramework.dll, но не был обработан в пользовательском коде

Я пробовал несколько разных вещей, как я могу это исправить?

+0

Что вы еще пробовали? Что отладчик говорит вам о добавленных данных - действительно ли данные выглядят нормально? Проверьте исключение, чтобы увидеть, есть ли у него внутреннее исключение. Все материалы .aspx не будут связаны с проблемой, поэтому вы можете удалить ее - люди будут более охотно помогать, если им не придется читать через загруженные ненужные коды :-) – Rune

+0

Я попытался принять ' SaveChanges() 'out и ищет что-то другое, и смотрел онлайн для разных решений. Отладчик говорит, что это была ошибка при попытке обновить записи, а также просмотреть внутреннее исключение для получения дополнительной информации, как это сделать? Данные, которые я вводил, являются «тестом» в обоих полях. – Zoxac

ответ

2

Проводка это как сообщества вики, так как это не является «ответом» само по себе, но, будучи в состоянии ясно видеть, какие свойства предотвращают обновление спасло меня несколько раз:

try 
{ 
    context.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); 
} 

Что это делает на самом деле добавьте ошибки проверки индивидуального свойства в исключение, которое вы получаете на желтом экране смерти. Поэтому вместо того, чтобы бесполезно просто сказать, что EF не удалось обновить, вы видите , почему не удалось обновить. Это должно помочь вам определить источник вашей проблемы.

+1

, используя это прямо сейчас, определенно очень полезно. Проблема связана с одним из моих внешних ключей. – Zoxac

Смежные вопросы