我的asp.net MVC3应用程序中有以下代码:
string msg = "Beginning report run for: ";
msg += " Obligor Registry ID: " + obligorID;
msg += " Requesting Organization Registry ID:" + requestingOrgID;
msg += " Requesting Agent Registry ID: " + requestingAgentID;
TransactionLog lg = new TransactionLog();
lg.TransactionTypeId = 2;
lg.Message = msg;
context.TransactionLogs.Add(lg);
long referenceNumber = context.SaveChanges();
return referenceNumber;
我收到了以下错误:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
答案 0 :(得分:16)
当您在catch {...}
块内处于调试模式时,打开“QuickWatch”窗口( ctrl + alt + q )并粘贴在那里:
((System.Data.Entity.Validation.DbEntityValidationException)ex).EntityValidationErrors
这将允许您深入查看ValidationErrors
树。这是我发现能够即时了解这些错误的最简单方法。
答案 1 :(得分:2)
catch (DbEntityValidationException dbEx)
{
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
}
}
}
您需要名称空间:System.Data.Entity.Validation
答案 2 :(得分:1)
@GONeale在这方面帮助了我。此外,在我的情况下导致此异常的原因是我确实没有空数据库字段,我没有包含在特定事务的部分响应更新中。在这种情况下,context.Database.ExecuteSQLCommand将是我的建议。