🚀 feat(新增): EfCore所以CURD包含事务、分页查询全部完成

This commit is contained in:
Bunny 2024-08-10 04:18:03 +08:00
parent 8e3c07a360
commit 08762564cc
8 changed files with 168 additions and 13 deletions

View File

@ -1,6 +1,6 @@
namespace Bunny.Dao.Result.Page;
namespace Bunny.Dao.Result;
public class Pagination<T>
public class PageResult<T>
{
/// <summary>
/// 当前页
@ -25,5 +25,5 @@ public class Pagination<T>
/// <summary>
/// 数据
/// </summary>
public IList<T> Rows { get; set; }
public List<T>? Data { get; set; }
}

View File

@ -1,4 +1,5 @@
using Bunny.Dao.Models.System;
using Bunny.Dao.Result;
namespace Bunny.Service.IService;
@ -27,4 +28,27 @@ public interface IBlogService
/// </summary>
/// <param name="id"></param>
void DeleteBlog(string id);
/// <summary>
/// 批量添加数据
/// </summary>
/// <param name="url"></param>
void AddBatchBlogs(string url);
/// <summary>
/// 批量删除BLog
/// </summary>
void DeleteBatchBlogs();
/// <summary>
/// 批量更新_带事务
/// </summary>
void UseTransaction();
/// <summary>
/// 分页查询
/// </summary>
/// <param name="page"></param>
/// <param name="limit"></param>
PageResult<Blog> QueryPage(int page, int limit);
}

View File

@ -1,5 +1,6 @@
using Bunny.Common.Connect;
using Bunny.Dao.Models.System;
using Bunny.Dao.Result;
namespace Bunny.Service.IService.Service;
@ -52,4 +53,90 @@ public class BlogService : IBlogService
_dbContext.Blogs.Remove(blog);
_dbContext.SaveChanges();
}
/// <summary>
/// 批量添加数据
/// </summary>
/// <param name="url"></param>
public void AddBatchBlogs(string url)
{
var list = new List<Blog>();
for (var i = 0; i <= 100000; i++)
list.Add(new Blog
{
Id = $"{i}",
Url = url,
CreateTime = DateTime.Now,
UpdateTime = DateTime.Now,
UpdateUserId = Random.Shared.Next(),
CreateUserId = Random.Shared.NextInt64()
});
_dbContext.Blogs.AddRange(list);
_dbContext.SaveChanges();
}
/// <summary>
/// 批量删除BLog
/// </summary>
public void DeleteBatchBlogs()
{
var list = new List<Blog>();
for (var i = 0; i < 10; i++)
{
var blog = new Blog { Id = $"{i}" };
list.Add(blog);
}
_dbContext.Blogs.RemoveRange(list);
_dbContext.SaveChanges();
}
/// <summary>
/// 批量更新_带事务
/// </summary>
public void UseTransaction()
{
// 还可以使用异步的
var transaction = _dbContext.Database.BeginTransaction();
// 执行批量更新操作
var list = new List<Blog>();
for (var i = 0; i < 10; i++)
{
var blog = new Blog { Id = $"{i}", Url = "https://learn.microsoft.com/zh-cn/ef/core/saving/transactions" };
list.Add(blog);
}
// 更新内容
_dbContext.Blogs.UpdateRange(list);
_dbContext.SaveChanges();
// 还可以使用异步方式
transaction.Commit();
}
/// <summary>
/// 分页查询
/// </summary>
/// <param name="page"></param>
/// <param name="limit"></param>
public PageResult<Blog> QueryPage(int page, int limit)
{
var items = _dbContext.Blogs.ToList();
var total = items.Count;
var pages = (int)Math.Ceiling(total / (double)limit);
var blogs = items.Skip((page - 1) * limit).Take(limit).ToList();
return new PageResult<Blog>
{
PageNo = page,
Total = total,
PageSize = limit,
Pages = pages,
Data = blogs
};
}
}

View File

@ -8,8 +8,7 @@ namespace Bunny.WebApi.Controllers;
/// <summary>
/// BLog相关接口
/// </summary>
[ApiController]
[Route("/api/[controller]")]
[Route("/api/[controller]/[action]")]
public class BlogController : ControllerBase
{
private readonly IBlogService _blogService;
@ -24,7 +23,7 @@ public class BlogController : ControllerBase
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpPost("AddBlog")]
[HttpPost]
public Result<string> AddBlog(Blog dto)
{
_blogService.AddBlog(dto);
@ -35,7 +34,7 @@ public class BlogController : ControllerBase
/// 查询BLog
/// </summary>
/// <returns></returns>
[HttpGet("QueryBlog")]
[HttpGet]
public Result<List<Blog>> QueryBlog()
{
var vo = _blogService.QueryBlog();
@ -47,7 +46,7 @@ public class BlogController : ControllerBase
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpPost("UpdateBlog")]
[HttpPost]
public Result<string> UpdateBlog(Blog dto)
{
_blogService.UpdateBlog(dto);
@ -58,10 +57,55 @@ public class BlogController : ControllerBase
/// 删除BLog
/// </summary>
/// <returns></returns>
[HttpDelete("DeleteBlog")]
[HttpDelete]
public Result<string> DeleteBlog(string id)
{
_blogService.DeleteBlog(id);
return Result<string>.Success();
}
/// <summary>
/// 批量添加数据
/// </summary>
/// <returns></returns>
[HttpPost]
public Result<string> AddBatchBlogs(string url)
{
_blogService.AddBatchBlogs(url);
return Result<string>.Success();
}
/// <summary>
/// 批量删除BLog
/// </summary>
/// <returns></returns>
[HttpGet]
public Result<string> DeleteBatchBlogs()
{
_blogService.DeleteBatchBlogs();
return Result<string>.Success();
}
/// <summary>
/// 批量更新_带事务
/// </summary>
/// <returns></returns>
[HttpGet]
public Result<string> UseTransaction()
{
_blogService.UseTransaction();
return Result<string>.Success();
}
/// <summary>
/// 分页查询
/// </summary>
/// <returns></returns>
[HttpPost]
public Result<PageResult<Blog>> QueryPage(int page = 1, int limit = 10)
{
var vo = _blogService.QueryPage(page, limit);
return Result<PageResult<Blog>>.Success(vo);
}
}

View File

@ -23,7 +23,7 @@ public class RedisOptionController : ControllerBase
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
[HttpPost("AddStringValue")]
[HttpPost]
public Result<string> AddStringValue(string key, string value)
{
_redisOptionService.AddStringValue(key, value);
@ -34,7 +34,7 @@ public class RedisOptionController : ControllerBase
/// 查询字符串Key
/// </summary>
/// <returns></returns>
[HttpPost("QueryStringKey")]
[HttpPost]
public Result<string> QueryStringKey(string key)
{
var queryStringKey = _redisOptionService.QueryStringKey(key);
@ -47,7 +47,7 @@ public class RedisOptionController : ControllerBase
/// <param name="key"></param>
/// <param name="value"></param>
/// <returns></returns>
[HttpPost("AddTimeRedisKey")]
[HttpPost]
public Result<string> AddTimeRedisKey(string key, string value)
{
_redisOptionService.AddTimeRedisKey(key, value);
@ -71,7 +71,7 @@ public class RedisOptionController : ControllerBase
/// Redis存入JSON内容
/// </summary>
/// <returns></returns>
[HttpGet("AddJson")]
[HttpGet]
public Result<string> AddJson()
{
var json = _redisOptionService.AddJson();

Binary file not shown.

Binary file not shown.

Binary file not shown.