C# 尝试向Azure db提交数据时遇到异常
我有一个帖子表单,用户可以在其中输入他们帖子的标题和描述。还有一个submit按钮,它可以触发我的submit\u Post事件 在我尝试保存数据库中的更改之前,一切似乎都正常运行C# 尝试向Azure db提交数据时遇到异常,c#,asp.net,entity-framework,azure,asp.net-identity,C#,Asp.net,Entity Framework,Azure,Asp.net Identity,我有一个帖子表单,用户可以在其中输入他们帖子的标题和描述。还有一个submit按钮,它可以触发我的submit\u Post事件 在我尝试保存数据库中的更改之前,一切似乎都正常运行 protected void Submit_Post(object sender, EventArgs e) { using (website_dbEntities objEnt = new website_dbEntities()) { Post postData = new Po
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
}
}
这是我得到的一个例外:
EntityFramework.dll中出现“System.Data.Entity.Infrastructure.DbUpdateException”类型的异常,但未在用户代码中处理
我尝试了一些不同的方法,如何解决这个问题?将此作为社区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更新失败,而是了解它为什么更新失败。这将帮助您确定问题的根源。您已经尝试过哪些不同的方法?调试器告诉您有关添加的数据的信息-数据看起来正常吗?请检查异常以查看是否存在内部异常。所有的.aspx内容都与问题无关,因此您可能希望删除它-如果人们不必阅读大量不相关的代码,他们会更愿意提供帮助:-我尝试过将SaveChanges取出,寻找不同的内容,并在网上寻找不同的解决方案。调试器说,它们在尝试更新条目时出错,并且也查看了内部异常以了解更多详细信息,我如何做到这一点?我输入的数据在这两个领域都是测试数据。现在使用这个,肯定非常有用。问题在于我的一把外键。