一个或多个实体的验证失败

时间:2011-05-28 11:01:14

标签: entity-framework-4

我的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. 

3 个答案:

答案 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将是我的建议。