.net core webapi dapper 使用案例
1、使用nuget下载对应的dapper 包,如下:
2、在Startup 类中的 ConfigureServices 方法中加入如下代码:
services.AddDapperForMySql(options => { options.ConnectionString = Configuration.GetConnectionString("MySql"); });
3、在appsetting.json文件加入数据库连接配置,如下:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "ConnectionStrings": {
"MySql": "server=192.168.1.238;database=rfid_db;user id=root;password=123456;port=3306;" } }
4、 添加SysUser model 如下:
[Table("SysUsers")] public class SysUser { [Key] public int uId { get; set; } public string userName { get; set; } public string loginName { get; set; } public string pwd { get; set; } }
5、添加 ISysUserService 接口:
public interface ISysUserService { List<SysUser> GetList(int pageIndex, int pageSize); long Add(SysUser user); bool Update(SysUser user); bool Del(SysUser user); bool TestTran(SysUser user); }
6、添加对ISysUserService 的实现类 SysUserService
using coreTest.IService; using coreTest.Model; using coreTest.Service.Mysql; using Dapper.Extension.AspNetCore; using System; using System.Collections.Generic; using System.Text; namespace coreTest.Service { public class SysUserService : ISysUserService { private readonly IDapper dapper; public SysUserService(IDapper _dapper) { dapper = _dapper; } /// <summary> /// 返回值是对应表添加的对应记录的主键值 /// </summary> /// <param name="user"></param> /// <returns></returns> public long Add(SysUser user) { var res = dapper.Insert<SysUser>(user); return res; } public bool Del(SysUser user) { return dapper.Delete<SysUser>(user); } public List<SysUser> GetList(int pageIndex, int pageSize) { var result = dapper.QueryPage<SysUser>(SysUserSql.getCountSql, SysUserSql.getListSql, pageIndex, pageSize); return result.Contents; } public bool Update(SysUser user) { return dapper.Update<SysUser>(user); } public bool TestTran(SysUser user) { bool result = false; using (var transaction = dapper.BeginTransaction()) { try { int b = 0; dapper.Insert<SysUser>(user); int z = 1 / b; dapper.Update<SysUser>(user); transaction.Commit(); result = true; } catch (Exception e) { Console.WriteLine(e); transaction.Rollback(); result = false; } } return result; } } }
7、添加SysUserController 控制器:
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using coreTest.IService; using coreTest.Model; using Dapper.Extension.AspNetCore; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; namespace coreTest.Controllers { [Route("api/[controller]")] [ApiController] public class SysUserController : ControllerBase { private readonly ILogger<SysUserController> logger; private readonly IDapper dapper; private readonly ISysUserService sysUserService; public SysUserController(ILogger<SysUserController> _logger, IDapper _dapper, ISysUserService _sysUserService) { logger = _logger; dapper = _dapper; sysUserService = _sysUserService; } [HttpGet] [Route("Index")] public JsonResult Index(int pageIndex = 1, int pageSize = 10) { var result = sysUserService.GetList(pageIndex, pageSize); return new JsonResult(result); } [HttpGet] [Route("Del")] public JsonResult Del(int uId) { SysUser user = new SysUser() { uId = uId }; var result = sysUserService.Del(user); return new JsonResult(result); } [HttpPost] [Route("Add")] public JsonResult Add(SysUser sysUser) { var result = sysUserService.Add(sysUser); return new JsonResult(result); } [HttpPost] [Route("Update")] public JsonResult Update(SysUser sysUser) { var result = sysUserService.Update(sysUser); return new JsonResult(result); } /// <summary> /// 测试事务 /// </summary> /// <param name="sysUser"></param> /// <returns></returns> [HttpPost] [Route("TestTran")] public JsonResult TestTran(SysUser sysUser) { //测试事务 var result = sysUserService.TestTran(sysUser); return new JsonResult(result); } } }
8、在Startup 类中的 ConfigureServices 方法中添加如下代码:
services.AddTransient<IModuleService, ModuleService>(); services.AddTransient<ISysUserService, SysUserService>();
分类:
.NET Core
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix