当前位置: 首页 > news >正文

(一)复习(模块注入/minimal api/EF和Dapper实现CQRS)


文章目录

  • 项目地址
  • 一、模块注入
    • 1.1 创建Event模块的统一注册入口
    • 1.2 Program里统一调用
  • 二、minimal api
    • 2.1 创建一个查询controller
    • 2.2 注册minimal api节点
  • 三、EF实现CreateEvent
    • 3.1 EndPoint构建(Presentation)
      • 1. 使用ISender创建minimal api
      • 2. EndPoint注册
    • 3.2 Create请求构建(Application)
      • 1. Command类
      • 2. CommandHandler类
    • 3.3 接口实现(Infrastructure)
      • 1. IUnitOfWork实现
      • 2. IEventRepository实现
    • 3.4 FluentApi验证Command
      • 1. 创建验证器
    • 3.5 Event模块所有服务和配置注册
  • 四、Dapper实现GetEvent
    • 4.1 构建GetEvent的Minimal api(Presentation)
    • 4.2 GetEventQuery实现 (Application)
      • 1. 创建IDbConnectionFactory
      • 2. GetEventQuery
      • 3. GetEventQueryHandler
    • 4.3 接口实现 (Infrastructure)
      • 1. IDbConnectionFactory实现
      • 2. 注册Dapper服务和数据库服务
  • 五、Rich Domain Event实现
    • 5.1 创建Entity的抽象
      • 1. 创建IDomainEvent
      • 2. IDomainEvent实现
      • 3. Entity类
    • 5.2 Event 领域
      • 1. Event实体
      • 2. EventCreatedDomainEvent领域事件
  • 3.x CQRS的高级使用


项目地址

  • 教程作者:
  • 教程地址:
  • 代码仓库地址:
  • 所用到的框架和插件:
dbt 
airflow

一、模块注入

  • 使用静态类和静态方法对模块进行注入

1.1 创建Event模块的统一注册入口

  • 静态类统一注册Event模块
    在这里插入图片描述

1.2 Program里统一调用

  • 调用Event模块里静态类中的各个方法
    在这里插入图片描述

二、minimal api

2.1 创建一个查询controller

  • 创建查询controller
    在这里插入图片描述

2.2 注册minimal api节点

在这里插入图片描述

三、EF实现CreateEvent

在这里插入图片描述

3.1 EndPoint构建(Presentation)

1. 使用ISender创建minimal api

  • 将上面垂直架构的minimal api改为CQRS,CQRS对数据库进行了解耦
    在这里插入图片描述

2. EndPoint注册

  • 将当前所有Miminal api注册
    在这里插入图片描述
  • 通过EventsModule统一注册 EventEndpoints
    在这里插入图片描述

3.2 Create请求构建(Application)

1. Command类

  • 传入Command,返回Guid
    在这里插入图片描述

2. CommandHandler类

在这里插入图片描述

3.3 接口实现(Infrastructure)

1. IUnitOfWork实现

在这里插入图片描述

2. IEventRepository实现

  • 实现Domian的层的IEventRepository
using Evently.Modules.Events.Domain.Events;
using Evently.Modules.Events.Infrastructure.Database;namespace Evently.Modules.Events.Infrastructure.Events;
internal sealed class EventRepository(EventsDbContext context) : IEventRepository
{public void Insert(Event @event){context.Events.Add(@event);}
}

3.4 FluentApi验证Command

1. 创建验证器

using FluentValidation;namespace Evently.Modules.Events.Applic
http://www.lryc.cn/news/579480.html

相关文章:

  • Ubuntu Gnome 安装和卸载 WhiteSur-gtk-theme 类 Mac 主题的正确方法
  • Frida:配置自动补全 in VSCode
  • TCP 三次握手与四次挥手详解
  • MyBatis 之基础概念与框架原理详解
  • RabbitMQ 通过HTTP API删除队列命令
  • 【如何判断Linux系统是Ubuntu还是CentOS】
  • Centrifugo 深度解析:构建高性能实时应用的开源引擎
  • 记忆翻牌记忆力小游戏流量主微信小程序开源
  • 网创vip课程视频教程、付费网络课程以及网赚培训,学习引流、建站、赚钱。8个T的全套课程
  • 【2.3 漫画SpringSecurity - 守护应用安全的钢铁卫士】
  • ATE FT ChangeKit学习总结-20250630
  • Easy-excel监听器中对批量上传的工单做错误收集
  • Redisson使用示例
  • 请求未达服务端?iOS端HTTPS链路异常的多工具抓包排查记录
  • 【Bug Recod】更新中...
  • Day50
  • 一文详解Character AI:实用指南+ ChatGPT、Gemini对比分析
  • contenteditable网页富文本编辑无法选中图片
  • Swift 的基础设计哲学是 “通过模块化组合实现安全与效率的平衡“,就像用标准化工业零件建造摩天大楼
  • 一台香港原生ip站群服务器多少钱?
  • 如何在Ubuntu上检查MySQL是否启动并放开3306端口
  • C++笔记-位图和布隆过滤器
  • P1155 [NOIP 2008 提高组] 双栈排序
  • 李宏毅机器学习笔记——梯度下降法
  • 映射阿里云OSS(对象存储服务)
  • 百度文心智能体平台x小米应用商店:联手打造行业首个智能体与应用市场跨端分发模式
  • webrtc-streamer视频流播放(rstp协议h264笔记)
  • KDD 2025 | 地理定位中的群体智能:一个多智能体大型视觉语言模型协同框架
  • Go应用容器化完全指南:构建最小化安全镜像的终极实践
  • I/O 线程 7.3