我需要一种方法来区分使用 Entity Framework LINQ 的 SQL 异常,例如,当我从 DbUpdateException 得到的只是大量嵌套的内部异常和无用的长错误消息时,如何区分违反前键约束或违反唯一约束?是否有任何较低级别的异常,我可以在其中执行类似“Catch FKException”的操作;捕获“uniqueException”或类似的东西。
最佳答案
try
{
//code
}
catch (System.Data.Entity.Validation.DbEntityValidationException e)
{
string rs = "";
foreach (var eve in e.EntityValidationErrors)
{
rs = string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State);
Console.WriteLine(rs);
foreach (var ve in eve.ValidationErrors)
{
rs += "<br />" + string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
}
}
throw new Exception(rs);
}
关于c# - 处理 Entity Framework 中的异常 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19042107/