C# 无法隐式转换类型';System.Data.Entity.Validation.DbEntityValidationException';至';系统异常';

C# 无法隐式转换类型';System.Data.Entity.Validation.DbEntityValidationException';至';系统异常';,c#,entity-framework,C#,Entity Framework,//错误:“无法隐式转换 键入'System.Data.Entity.Validation.DbEntityValidationException' 到“System.Exception”“//在Catch中使用System.Data.Entity.Validation.DbEntityValidationException时获取此错误 挡块 我已经测试了你发布的代码,但实际上没有问题。它很好地投影了预期的异常,没有抛出任何强制转换异常。您确定没有其他代码行会影响刚刚发布的代码的行为吗?嗨,阿里

//错误:“无法隐式转换 键入'System.Data.Entity.Validation.DbEntityValidationException' 到“System.Exception”“//在Catch中使用System.Data.Entity.Validation.DbEntityValidationException时获取此错误 挡块


我已经测试了你发布的代码,但实际上没有问题。它很好地投影了预期的异常,没有抛出任何强制转换异常。您确定没有其他代码行会影响刚刚发布的代码的行为吗?嗨,阿里,是的,在try block之前只有几行代码。但这一点很好。我只是在使用catch(System.Data.Entity.Validation.DbEntityValidationException-ex)时收到此异常。您应该发布整个堆栈跟踪。
try
{
    using (var context = new DbContext())
    {
        context.Contracts.Add(_contract);
        context.SaveChanges();
    }
}
catch (System.Data.Entity.Validation.DbEntityValidationException ex)
{                
    foreach (var validationErrors in ex.EntityValidationErrors)
    {
        foreach (var validationError in validationErrors.ValidationErrors)
        {
            string message = string.Format("{0}:{1}",
                validationErrors.Entry.Entity.ToString(),
                validationError.ErrorMessage);                       
        }
    }
    throw;
}