iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >.NET 6开发TodoList应用怎么实现查询排序
  • 457
分享到

.NET 6开发TodoList应用怎么实现查询排序

2023-06-22 07:06:48 457人浏览 薄情痞子
摘要

这篇文章主要讲解了“.net 6开发TodoList应用怎么实现查询排序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.NET 6开发TodoList应用怎么实现查询排序

这篇文章主要讲解了“.net 6开发TodoList应用怎么实现查询排序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.NET 6开发TodoList应用怎么实现查询排序”吧!

需求

关于查询的另一个需求是要根据前端请求的排序字段进行对结果相应的排序。

目标

实现根据排序要求返回排序后的结果

原理与思路

要实现根据前端请求的进行相应排序,结合我们之前写好的Specification,可以比较简单地做到。

实现

我们还是用TodoItem请求来举例,再添加一个排序字段到查询请求中:

GetTodoItemsWithConditionQuery.cs

using AutoMapper;using AutoMapper.QueryableExtensions;using MediatR;using TodoList.Application.Common.Interfaces;using TodoList.Application.Common.Mappings;using TodoList.Application.Common.Models;using TodoList.Application.TodoItems.Specs;using TodoList.Domain.Entities;using TodoList.Domain.Enums;namespace TodoList.Application.TodoItems.Queries.GetTodoItems;public class GetTodoItemsWithConditionQuery : IRequest<PaginatedList<TodoItemDto>>{    public Guid ListId { get; set; }    public bool? Done { get; set; }    public string? Title { get; set; }    public PriorityLevel? PriorityLevel { get; set; }    public string? SortOrder { get; set; } = "title_asc";    public int PageNumber { get; set; } = 1;    public int PageSize { get; set; } = 10;}public class GetTodoItemsWithConditionQueryHandler : IRequestHandler<GetTodoItemsWithConditionQuery, PaginatedList<TodoItemDto>>{    private readonly IRepository<TodoItem> _repository;    private readonly IMapper _mapper;    public GetTodoItemsWithConditionQueryHandler(IRepository<TodoItem> repository, IMapper mapper)    {        _repository = repository;        _mapper = mapper;    }    public async Task<PaginatedList<TodoItemDto>> Handle(GetTodoItemsWithConditionQuery request, CancellationToken cancellationToken)    {        var spec = new TodoItemSpec(request);        return await _repository            .GetAsQueryable(spec)            .ProjectTo<TodoItemDto>(_mapper.ConfigurationProvider)            .PaginatedListAsync(request.PageNumber, request.PageSize);    }}

同时把原本写在查询中的条件整合到了TodoItemSpec中:

TodoItemSpec.cs

// 省略其他...public TodoItemSpec(GetTodoItemsWithConditionQuery query) :     base(x => x.ListId == query.ListId               && (!query.Done.HasValue || x.Done == query.Done)               && (!query.PriorityLevel.HasValue || x.Priority == query.PriorityLevel)              && (string.IsNullOrEmpty(query.Title) || x.Title!.Trim().ToLower().Contains(query.Title!.ToLower()))){    if (string.IsNullOrEmpty(query.SortOrder))        return;    switch (query.SortOrder)    {        // 仅作有限的演示        default:            ApplyOrderBy(x => x.Title!);            break;        case "title_desc":            ApplyOrderByDescending(x =>x .Title!);            break;        case "priority_asc":            ApplyOrderBy(x => x.Priority);            break;        case "priority_desc":             ApplyOrderByDescending(x => x.Priority);             break;    }}

验证

启动api项目,执行查询TodoItem的请求:

请求

.NET 6开发TodoList应用怎么实现查询排序

响应

.NET 6开发TodoList应用怎么实现查询排序

感谢各位的阅读,以上就是“.NET 6开发TodoList应用怎么实现查询排序”的内容了,经过本文的学习后,相信大家对.NET 6开发TodoList应用怎么实现查询排序这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: .NET 6开发TodoList应用怎么实现查询排序

本文链接: https://www.lsjlt.com/news/303411.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • .NET 6开发TodoList应用怎么实现查询排序
    这篇文章主要讲解了“.NET 6开发TodoList应用怎么实现查询排序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“.NET 6开发TodoList应用怎么实现查询排序...
    99+
    2023-06-22
  • .NET 6开发TodoList应用怎么实现
    这篇文章主要介绍“.NET 6开发TodoList应用怎么实现”,在日常操作中,相信很多人在.NET 6开发TodoList应用怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”.NE...
    99+
    2023-06-22
  • .NET6开发TodoList应用之实现查询排序
    目录需求目标原理与思路实现验证总结需求 关于查询的另一个需求是要根据前端请求的排序字段进行对结果相应的排序。 目标 实现根据排序要求返回排序后的结果 原理与思路 要实现根据前端请求的...
    99+
    2022-11-12
  • .NET 6开发TodoList应用怎么实现数据塑形
    这篇文章主要介绍“.NET 6开发TodoList应用怎么实现数据塑形”,在日常操作中,相信很多人在.NET 6开发TodoList应用怎么实现数据塑形问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
    99+
    2023-06-22
  • .NET 6开发TodoList应用实现系列背景
    目录1.列说明2.系列导航2.1 使用.NET 6开发TodoList应用文章索引2.1.1创建项目2.1.2.NET 6 WebAPI Program.cs的变更2.1.3Chan...
    99+
    2022-11-12
  • .NET 6开发TodoList应用之实现Repository模式
    目录需求目标原理和思路实现通用Repository实现引入使用验证总结参考资料需求 经常写CRUD程序的小伙伴们可能都经历过定义很多Repository接口,分别做对应的实现,依赖注...
    99+
    2022-11-12
  • .NET 6开发TodoList应用之如何实现PUT请求
    这篇文章将为大家详细讲解有关.NET 6开发TodoList应用之如何实现PUT请求,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需求PUT请求本身其实可说的并不多,过程也和创建基本类似。在这篇...
    99+
    2023-06-22
  • .NET 6开发TodoList应用之使用MediatR实现POST请求
    目录需求目标原理与思路CQRS模式中介者Mediator模式MediatR实现引入MediatR实现Post请求验证创建TodoList验证创建TodoItem验证总结参考资料需求 ...
    99+
    2022-11-12
  • 怎么使用.NET 6开发TodoList应用引入数据存储
    本篇内容主要讲解“怎么使用.NET 6开发TodoList应用引入数据存储”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用.NET 6开发TodoList应用引入数据存...
    99+
    2023-06-22
  • .NET 6开发TodoList应用中如何实现全局异常处理
    本篇文章为大家展示了.NET 6开发TodoList应用中如何实现全局异常处理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。需求因为在项目中,会有各种各样的领域异常或系统异常被抛出来,那么...
    99+
    2023-06-22
  • .NET6开发TodoList应用之实现查询分页
    目录需求目标原理与思路实现定义分页结果数据结构添加对于分页结果的Mapping Profile创建分页查询请求创建查询Controller验证总结需求 查询中有个非常常见的需求就是后...
    99+
    2022-11-12
  • .NET 6开发TodoList应用之实现DELETE请求与HTTP请求幂等性
    目录需求目标原理与思路实现验证总结需求 先说明一下关于原本想要去更新的PATCH请求的文章,从目前试验的情况来看,如果是按照.NET 6的项目结构(即只使用一个Program.cs完...
    99+
    2022-11-12
  • .NET 6开发TodoList应用中如何实现DELETE请求与HTTP请求幂等性
    本篇文章为大家展示了.NET 6开发TodoList应用中如何实现DELETE请求与HTTP请求幂等性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。需求先说明一下关于原本想要去更新的PAT...
    99+
    2023-06-22
  • HTML5怎么实现移动应用程序的快速开发
    这篇文章主要介绍了HTML5怎么实现移动应用程序的快速开发,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   随着Internet和移动I...
    99+
    2022-10-19
  • 怎么实现Golang跨平台进行GUI桌面应用程序开发
    本篇内容主要讲解“怎么实现Golang跨平台进行GUI桌面应用程序开发”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么实现Golang跨平台进行GUI桌面应用程序开发”吧!golang能开发桌...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作