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

这篇具有很好参考价值的文章主要介绍了WPF实战项目十(API篇):引入工作单元UnitOfWork。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

WPF实战项目十(API篇):引入工作单元UnitOfWork,WPF,.netcore,wpf,后端,restful,web

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

WPF实战项目十(API篇):引入工作单元UnitOfWork,WPF,.netcore,wpf,后端,restful,web

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运行项目:

WPF实战项目十(API篇):引入工作单元UnitOfWork,WPF,.netcore,wpf,后端,restful,webWPF实战项目十(API篇):引入工作单元UnitOfWork,WPF,.netcore,wpf,后端,restful,webWPF实战项目十(API篇):引入工作单元UnitOfWork,WPF,.netcore,wpf,后端,restful,webWPF实战项目十(API篇):引入工作单元UnitOfWork,WPF,.netcore,wpf,后端,restful,webWPF实战项目十(API篇):引入工作单元UnitOfWork,WPF,.netcore,wpf,后端,restful,webWPF实战项目十(API篇):引入工作单元UnitOfWork,WPF,.netcore,wpf,后端,restful,web文章来源地址https://www.toymoban.com/news/detail-602539.html

到了这里,关于WPF实战项目十(API篇):引入工作单元UnitOfWork的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot 项目中引入WebSocket后,单元测试出现错误,前端开发揭秘

    java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108) at org.springframework.test.context.w

    2024年04月27日
    浏览(25)
  • Vue 项目路由、自定义指令、api方法自动引入资源(require.context使用)

    require.context(directory,useSubdirectories,regExp) 1:directory:哪个文件夹 2:useSubdirectories:是否需要找到子文件夹 3: regExp:正则表达式(一般指文件的后缀) 以下是单个js文件 接口的命名不能重复。 如果项目较大,建议接口命名需要有一个统一的规范来避免出现命名重复的问题

    2024年02月16日
    浏览(29)
  • WPF MaterialDesign 初学项目实战(0):github 项目Demo运行

    最近在学B站的WPF项目实战合集(2022终结版),但是到22P时候发现UI框架 MaterialDesignThemes的Github上面的程序没办法正常运行,最后折腾了好久终于解决。 github地址 gitcode镜像地址 下载成功后是如下效果 打开这个文件 MaterialDesignToolkit.Wpf.slnf 选择这个Demo 下载.NET Framework 4.6.2 下载之

    2024年02月07日
    浏览(33)
  • WPF MaterialDesign 初学项目实战(3)动态侧边栏

    WPF MaterialDesign 初学项目实战(0):github 项目Demo运行 WPF MaterialDesign 初学项目实战(1)首页搭建 WPF MaterialDesign 初学项目实战(2)首页导航栏样式 新建MenuBar文件 Common Models MenuBar 添加基本成员 注意,Views和VIewModels文件夹的名字是一定要这么写,这和Prism框架的自动绑定有关 绑

    2024年02月05日
    浏览(38)
  • WPF项目创建HTTP WEB服务,不使用IIS业务 WPF桌面程序WebApi WPF 集成WebApi C# 创建HTTP Web API服务

    在C# WPF应用程序中直接创建HTTP服务或WebAPI服务有以下优点: 自托管服务: 简化部署:无需依赖外部服务器或IIS(Internet Information Services),可以直接在应用程序内部启动和运行Web服务。 集成紧密:与WPF应用程序的其他组件和逻辑可以更紧密地集成,因为它们都在同一个进程

    2024年02月02日
    浏览(51)
  • WPF+Halcon 培训项目实战(10):HS组件绘制图案

    为了更好地去学习WPF+Halcon,我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主的提供的教程。这里只做笔记分享,想要源码或者教学视频可以和他联系一下。 微软系列技术教程 WPF 年度公益课程 Halcon开发 CSDN博客专栏 个人学习的Gitee 项目地址

    2024年02月03日
    浏览(34)
  • WPF+Halcon 培训项目实战 完结(13):HS 鼠标绘制图形

    为了更好地去学习WPF+Halcon,我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主的提供的教程。这里只做笔记分享,想要源码或者教学视频可以和他联系一下。 微软系列技术教程 WPF 年度公益课程 Halcon开发 CSDN博客专栏 个人学习的Gitee 项目地址

    2024年02月03日
    浏览(78)
  • Git在已有的项目中引入Submodule子模块管理:添加、更新、删除(实战示例代码)

    在进行Git版本控制的过程中,有时候我们需要在已有的项目中引入子模块,以便复用其他独立的Git存储库的代码或文件。本文将详细介绍如何在已有项目下添加、更新和删除Git的Submodule子模块,并提供相关的示例代码。 假设我们已经有一个主项目(my-main-project)的Git存储库,

    2024年02月07日
    浏览(28)
  • 【python自动化实战-引入trace】在项目中引入trace跟踪每条testcase执行过程中的日志+日志推送es

    最近公司在跑自动化case过程中有很多异常case,有的很难依据现有的日志定位问题(日志多且乱,无关联性),时常需要本地debug才能发现问题,很影响写自动化的效率以及自动化运行的通过率。 因此领导下发了一个需求:需要给每一条case绑定一个trace,通过trace关联case执行过程

    2024年02月04日
    浏览(29)
  • JavaWeb课程设计项目实战(03)——开发准备工作

    本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 在正式进入项目开发之前请先完成以下准备工作。 请创建数据库和表并完成数据初始化工作。 请在MySQL数据库中创建名为studentinformationmanagement的库。 在本项目中有以下两张表: 1、用户表 2、学生表 用户表详情

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包