1、使用nuget下载对应的dapper 包,如下:

Packages

NuGet

Dapper.Extension.AspNetCore

Dapper.Extension.AspNetCore.MySql



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>();