网站首页 > 技术教程 正文
我是编程乐趣,一个10年.Net开发经验老程序员,点击右上方“关注”,每天为你分享开源项目和编程知识。
使用Entity Framework作为ORM框架应该是绝大多数项目的选择,使得我们操作数据库变得简单方便;但是我们操作数据库,绝对是无法避免数据库发生异常的情况,数据库针对每一种异常也都会提供一个编码来指定异常。
但是编码对于我们阅读很不友好,我们还需要查阅相关文档,才能明白其中的意思,而且不同数据库的编码还不一样。
今天就给大家推荐一个开源项目,可以完美解决此问题。
01
项目简介
EntityFramework.Exceptions是一个针对Entity Framework解决在异常处理方面的一些问题,为开发人员提供更好的异常处理和错误信息。
该项目将Entity Framework的异常转换为更具可读性的异常信息,并提供更详细的错误描述,以便开发人员更好地理解和解决问题,从而有助于减少调试和修复问题的时间,从而提高开发效率。
该项目支持的数据库有:SQLServer, PostgreSQL, SQLite, Oracle 和 MySql。
02
项目结构
项目解决方案
文件目录
03
使用方法
下面我们对比:传统处理异常和使用该项目处理异常的区别:
以下例子:插入两个相同的产品名称,传统写法代码如下:
using (var demoContext = new DemoContext())
{
demoContext.Products.Add(new Product
{
Name = "产品1",
Price = 1
});
demoContext.Products.Add(new Product
{
Name = "产品1",
Price = 10
});
try
{
demoContext.SaveChanges();
}
catch (DbUpdateException e)
{
var sqlException = e.GetBaseException() as SqlException;
//编码:2601,违反唯一索引规范
if (sqlException != null && sqlException.Number == 2601)
{
//违反了唯一索引,记录日志
Log("产品名称重复,请检查产品名称!")
}
}
}以下例子:插入两个相同的产品名称,使用该项目写法代码如下:
using (var demoContext = new DemoContext())
{
demoContext.Products.Add(new Product
{
Name = "产品1",
Price = 1
});
demoContext.Products.Add(new Product
{
Name = "产品1",
Price = 10
});
try
{
demoContext.SaveChanges();
}
catch (UniqueConstraintException e)
{
//违反了唯一索引,记录日志
Log("产品名称重复,请检查产品名称!")
}
}以上的代码,UniqueConstraintException 就是该项目已经为我们定义好的异常,我们在使用的时候就无需关系具体编码,而且不同数据库的编码是不一样的,我们也无需关心。
04
项目地址
私信回复:1096,获取
我是编程乐趣,一个10年.Net开发经验老程序员,专注开源项目和编程知识分享。
私信回复:【888】,领取.Net视频教程。
- End -
推荐阅读
一个.Net Core开源缓存中间件,让你更加简单、方便使用缓存
猜你喜欢
- 2024-10-30 Spring Boot中RestTemplate开发实践(2)
- 2024-10-30 浅谈.NET EentityFramework的导航属性
- 2024-10-30 Entity Framework Core-删除数据(怎么删除framework4.0)
- 2024-10-30 EntityFramework Core 2.x/3.x (ef core) 在迁移中自动生成数据库表
- 2024-10-30 Entity Framework Core-使用Fluent API配置一对多关系
- 2024-10-30 .NET 7使用 Entity Framework Core 制作增删改查(CRUD) Web API 教程
- 2024-10-30 今日技术点:使用Entity Framework Core进行数据库迁移
- 2024-10-30 .Net Core下多种ORM框架特性及性能对比
- 2024-10-30 Entity Framework 7 支持批量操作和 JSON 列
- 2024-10-30 Entity Framework Core-Fluent API
欢迎 你 发表评论:
- 10-23Excel计算工龄和年份之差_excel算工龄的公式year
- 10-23Excel YEARFRAC函数:时间的"年份比例尺"详解
- 10-23最常用的10个Excel函数,中文解读,动图演示,易学易用
- 10-23EXCEL中如何计算截止到今日(两个时间中)的时间
- 10-2390%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 10-23计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- 10-23Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 10-23怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- 最近发表
-
- Excel计算工龄和年份之差_excel算工龄的公式year
- Excel YEARFRAC函数:时间的"年份比例尺"详解
- 最常用的10个Excel函数,中文解读,动图演示,易学易用
- EXCEL中如何计算截止到今日(两个时间中)的时间
- 90%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- Excel日期函数之DATEDIF函数_excel函数datedif在哪里
- Excel函数-DATEDIF求司龄_exceldatedif函数计算年龄
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)

本文暂时没有评论,来添加一个吧(●'◡'●)