c# - 处理 Entity Framework 中的异常 4

标签 c# sql entity-framework

我需要一种方法来区分使用 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/

相关文章:

mysql - 产品过滤器 WHERE IN 子句的替代方法

entity-framework - 如何为所有开发者设置连接字符串?

c# - 删除其他表中没有引用的行

mysql - 必须使用什么 SQL 语句从 1 个表但 2 个列中获取非重复 ID 的列表

c# - 引导多个生产者和消费者

c# - 如何使实例化的对象在实例化后继续跟随我的播放器?

c# - Parallel.ForEach() 中的触发事件

mysql - 如何在mysql查询中插入今天的日期?

database - 将 3 个表关系映射到单个实体。 ORM 最佳实践?

c# - 单行 "FromValue - ToValue"(不是类,不是字典/列表/数组)。如何?