WPF实战项目十(API篇):引入工作单元UnitOfWork

news/2024/11/8 9:18:23/

1、通过github地址:https://github.com/arch/UnitOfWork,下载UnitOfWork的代码,将工作单元部分的代码引用到自己的项目,新增UnitOfWork文件夹。

2、在UnitOfWork文件夹下引用UnitOfWork下的IPagedList.cs、PagedList.cs类,WPFProjectAPI项目引用WPFProjectShared项目。

3、然后在program.cs下添加UnitOfWork的服务:

//添加数据库上下文服务
builder.Services.AddDbContext<MyDbContext>(options =>
{string DbConnectionstring = builder.Configuration.GetConnectionString("DbConnectionString");options.UseSqlServer(DbConnectionstring);
}).AddUnitOfWork<MyDbContext>();

4、新建控制器UserController测试下工作单元的使用 ,先新建基础控制器BaseApiController,全局Resful风格代码(详见.Net Core6.0 WebAPI项目框架搭建二:实现Resful风格_痕迹0302的博客-CSDN博客):

[Route("api/[controller]/[action]")][ApiController]public class BaseApiController : ControllerBase{}

 5、UserController 继承BaseApiController,依赖注入IUnitOfWork,新增查询人员、删除人员、添加人员的测试代码:

public class UserController : BaseApiController{private readonly IUnitOfWork unitOfWork;public UserController(IUnitOfWork unitOfWork){this.unitOfWork = unitOfWork;}/// <summary>/// 获取人员信息/// </summary>/// <returns></returns>[HttpGet]public async Task<IEnumerable<User>> GetUserList(){var res = unitOfWork.GetRepository<User>();var list = await res.GetAllAsync();return list;}/// <summary>/// 添加人员/// </summary>/// <param name="user"></param>/// <returns></returns>[HttpPost]public async Task<IActionResult> AddUser(User user){var r = await unitOfWork.GetRepository<User>().InsertAsync(user);var result = await unitOfWork.SaveChangesAsync();if (result > 0){return Ok("添加人员成功!");}else{return BadRequest("添加人员失败!");}}/// <summary>/// 删除人员/// </summary>/// <param name="Id"></param>/// <returns></returns>[HttpDelete]public async Task<IActionResult> DeleteUser(int Id){var user = await unitOfWork.GetRepository<User>().FindAsync(Id);if(user == null){return NotFound("没有找到待删除的人员!");}else{unitOfWork.GetRepository<User>().Delete(user);if(await unitOfWork.SaveChangesAsync() > 0){return Ok($"删除账号:{user.Account}成功!");}else{return BadRequest("删除数据失败!");}}}}

6、F5运行项目:


http://www.ppmy.cn/news/980524.html

相关文章

Docker 全栈体系(六)

Docker 体系&#xff08;高级篇&#xff09; 三、Docker微服务实战 1. 通过IDEA新建一个普通微服务模块 建Module docker_boot 改POM <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" …

【JAVA】 String 方法附件

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️初识JAVA】 文章目录 String 方法 String 方法 char charAt(int index)返回指定索引处的 char 值。int compareTo(Object o) 把这个字符串和另一个对象比较。 int compareTo(String anotherString)按…

React的hooks---useEffect

在函数组件主体内&#xff08;React 渲染阶段&#xff09;改变 DOM、添加订阅、设置定时器、记录日志以及执行其他包含副作用的操作都是不被允许的&#xff0c;因为这可能会产生莫名其妙的 bug 并破坏 UI 的一致性 useEffect Hook 的使用则是用于完成此类副作用操作。useEffec…

查看maven发布时间的方法

查看maven发布时间的方法如下【 打开maven官网 选中Release Notes 即可查看对应版本的发布时间 】

Mac 上使用 Tesseract OCR 识别图片文本

Tesseract OCR 引擎&#xff1a;Tesseract是一个开源的OCR引擎&#xff0c;你需要先安装它。可以从Tesseract官方网站&#xff08;https://github.com/tesseract-ocr/tesseract&#xff09;下载适用于你的操作系统的安装程序或源代码&#xff0c;并按照官方文档进行安装。 Tes…

【嵌入式Linux项目】基于Linux的全志H616开发板智能家居项目(语音控制、人脸识别)

目录 一、功能需求 二、开发环境 1、硬件&#xff1a; 2、软件&#xff1a; 3、引脚分配&#xff1a; 三、关键点 1、设计模式之工厂模式 2、wiringPi库下的相关硬件操作函数调用 3、语音模块的串口通信 4、线程 5、摄像头的实时监控和拍照功能 6、人脸识别 四、编…

三维测量技术在高端精密制造中的应用

科技创新是新时代的重要发展动力。三维测量技术以精密机械为基础&#xff0c;综合应用了电子技术、计算机技术、光学技术和数控技术等先进技术&#xff0c;可以对机械、汽车、航空、家具、工具原型等测量出高精度的几何零部件以及测量复杂形状的机械零部件&#xff0c;给各行业…

Java项目各框架环境配置

SpringBoot 使用Spring Initializr创建工程&#xff0c;勾选Spring Web导入依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.20</version> </dependency> <depende…