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