.net core 3.1 加入ORM框架(Dapper)
Posted redo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net core 3.1 加入ORM框架(Dapper)相关的知识,希望对你有一定的参考价值。
对比了几个主流的ORM框架如SqlSuger Dapper SmartSql , 选择Dapper 主要是个人习惯,平时写sql比较多,感觉Dapper比较符合自己风格
首先安装 Dapper
平时使用mysql比较多,但是为了后续兼容SqlServer等其他数据库,先建一个DbFactory,用来管理数据库连接
当然,因为DbFactory命名规则不一致,要手动注入
在Startup.cs 文件的ConfigureContainer 方法中加入一行代码:
builder.RegisterType<DbFactory>().As<IDbFactory>();
DbOption 类定义连接数据库参数
在Startup.cs文件的ConfigureServices方法中注入:
services.Configure<DbOption>(Configuration.GetSection("DbOption"));
实际数据库相关参数记录在appsettings.json文件中
"DbOption": {
"ConnectionString": "server=127.0.0.1;database=leon;user=root;pwd=root;SslMode=none;",
"DbModel": "MySQL"
}
数据库及相关表自行创建
配置好基本工作,接下来就是调用方法(BaseService可以先忽略,下面会讲到)
在构造函数中注入DbFactory,就可以调用了,Dapper的语法不了解的自行百度了
至此,Dapper的配置调用已经完成了。
考虑到每个对象会有很多相同的操作,例如获取列表,根据主键获取信息等,如果每次都手写太麻烦,因此考虑引入Dapper 扩展
安装 Dapper.SimpleCRUD
注:引入Dapper.SimpleCRUD时,在DbFactory.cs要加入下面一行代码, 因为mysql语句不支持中括号,加上这个设置避免报错
Dapper.SimpleCRUD.SetDialect(Dapper.SimpleCRUD.Dialect.MySQL);
新建公共类BaseService(接口就不展示了),通用方法可以网上百度
注入DbFactory,声明DbConnection
在UserService 中继承BaseService,则可以继承BaseService中所有通用方法
Dapper定义实体类要注意,假设主键不是Id,应加入[Key]关键字
控制器中就可以直接调用继承baseService的方法
以上就是Dapper 的使用介绍,Dapper还有其他的扩展,有兴趣可以继续研究一下。
以上是关于.net core 3.1 加入ORM框架(Dapper)的主要内容,如果未能解决你的问题,请参考以下文章
使用自包含框架时,dot net core 3.1 的设置 CI 构建配置失败
Enterprise Solution 3.1 企业应用开发框架 .NET ERP/CRM/MIS 开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infrag
使用 Asp.NET Core 3.1 框架将文件上传到服务器时如何使用 IFormFile 作为属性?
如何将 .net core Web API 项目添加到现有的 .NET core (3.1) Web Application 项目中?