using Bunny.Common.Context.Database;
using Bunny.Common.Exception;
using Bunny.Common.Utils.Net;
using Bunny.Dao.Common.Result;
using Bunny.Dao.Dto.System;
using Bunny.Dao.Entity.System.User;
using Microsoft.AspNetCore.Components;
namespace Bunny.Service.IService.Service;
public class UserService : IUserService
{
[Inject] public required EfCoreContext DbContext { get; set; }
///
/// 添加Blog
///
///
///
public void AddBlog(Users dto)
{
DbContext.Add(dto);
DbContext.SaveChanges();
}
///
/// 查询BLog
///
///
public List QueryBlog()
{
return DbContext.Users.ToList();
}
///
/// 更新Blog内容
///
///
public void UpdateBlog(BlogUpdateDto dto)
{
var blog = new Users();
NetUtil.CopyProperties(dto, blog);
DbContext.Users.Update(blog);
DbContext.SaveChanges();
}
///
/// 删除BLog
///
///
public void DeleteBlog(string id)
{
var blog = new Users { Id = Guid.NewGuid().ToString() };
DbContext.Users.Remove(blog);
DbContext.SaveChanges();
}
///
/// 批量添加数据
///
///
public void AddBatchBlogs(string url)
{
var list = new List();
for (var i = 0; i <= 100; i++)
list.Add(new Users { Username = $"Blog{i}" });
DbContext.Users.AddRange(list);
DbContext.SaveChanges();
throw new BunnyException("测试事务注解");
}
///
/// 批量删除BLog
///
public void DeleteBatchBlogs()
{
var list = new List();
for (var i = 0; i < 10; i++)
{
var blog = new Users();
list.Add(blog);
}
DbContext.Users.RemoveRange(list);
DbContext.SaveChanges();
}
///
/// 批量更新_带事务
///
public void UseTransaction()
{
// 还可以使用异步的
var transaction = DbContext.Database.BeginTransaction();
// 执行批量更新操作
var list = new List();
for (var i = 0; i < 10; i++)
{
var blog = new Users { Username = "transactions" };
list.Add(blog);
}
// 更新内容
DbContext.Users.UpdateRange(list);
DbContext.SaveChanges();
// 还可以使用异步方式
transaction.Commit();
}
///
/// 分页查询
///
///
///
public Task> QueryPage(int page, int limit)
{
var pagedListAsync = GetPagedResultAsync.GetPagedListFromSqlAsync(DbContext, "select * from System_Users ", "System_Users", page, limit);
return pagedListAsync;
}
}