在尝试向Azure数据库提交数据时遇到异常
本文关键字:数据 遇到 异常 提交 数据库 Azure | 更新日期: 2023-09-27 18:16:46
我有一个帖子表单,用户可以为他们的帖子输入标题和描述。还有一个提交按钮,发射我的Submit_Post
事件。
一切似乎运行良好,直到我尝试在我的数据库上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中发生,但未在用户代码中处理
我已经尝试了一些不同的事情,我怎么能解决这个问题?
将此作为社区wiki发布,因为它本身不是"答案",但能够清楚地看到哪些属性阻止更新,这为我节省了无数次:
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更新失败。这将帮助您确定问题的根源。