在尝试向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中发生,但未在用户代码中处理

我已经尝试了一些不同的事情,我怎么能解决这个问题?

在尝试向Azure数据库提交数据时遇到异常

将此作为社区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更新失败。这将帮助您确定问题的根源。