开源博客项目Blog .NET Core源码学习(11:App.Core项目结构分析)

  开源博客项目Blog的App.Core项目主要定义数据库表对应的数据类,同时定义配置文件读取、日志记录、辅助缓存等辅助类。App.Core项目安装的Nuget包不多,仅包括SqlSugarCore和Microsoft.Extensions.DependencyInjectio两类。
  App.Core项目的顶层文件夹如下图所示,下面逐一概述其大致用途。

在这里插入图片描述

  Config文件夹。包含对应App.Hosting项目的appsettings.json文件不同配置节的数据结构定义,分别为DbConfig(数据库连接字符信息)、QQAuthConfig(QQ授权登录配置)、SysConfig(系统基础配置),同时还定义了基于EasyCaching的缓存类SqlSugarCache,用于配置SqlSugar连接时配置ORM缓存。
  Data文件夹。其中的TransactionAttribute特性类供App.Application项目的数据库操作函数使用,用于启用数据库事务,而ISoftDelete接口仅定义一DeleteMark属性,供App.Core项目的Entities文件夹中众多数据库实体类继承及实现。
  Entities文件夹。保存数据库实体类、日志类等相关的接口、类定义。其下级结构如下图所示,其中:
  Blog文件夹包含与博客网站中文章分类、文章及标签、时间线等相关的实体类定义;
  Logs文件夹包含与系统异常、系统执行SQL、系统用户登录、系统操作等相关的日志类定义,但暂未看到使用这些类型记录日志的地方;
  SysManager文件夹包括与角色、授权、系统模块与按钮相关的类型定义;
  User文件夹包括与用户、账号、QQ账号相关的类型定义;
  IEntity泛型接口和Entity泛型类定义和实现了Id属性,App.Core项目的绝大部分数据类都继承了Entity泛型类。Post类应该保存的是类似公告的数据,但暂未在解决方案中找到使用该类的地方。

在这里插入图片描述

  Extensions文件夹。包含的ServiceCollectionExtension类定义SqlSugar的连接和配置函数,App.Hosting项目的program.cs文件中调用该函数启用SqlSugar模块;SqlSugarExtensions扩展类定义了分页和动态增加过滤器两个扩展函数。
  Pager文件夹。包含的IPagedList和PagedList定义和实现了分页数据接口,主要供SqlSugarExtensions类的分页函数ToPage使用。
  Repository文件夹。包含的IAppRepository泛型接口和AppRepository泛型类定义和实现了常用的增删改查等数据库操作函数,主要调用SqlSugar实现。
  Share文件夹。包含的CreativeType枚举定义了博客中的文章类型,包括原创和转载两种。

参考文献:
[1]https://gitee.com/miss_you/Blog
[2]https://www.donet5.com/Home/Doc
[3]https://github.com/MapsterMapper/Mapster
[4]https://github.com/rivenfx/Mapster-docs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/491267.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

负氧离子监测站:创造健康生活环境

TH-FZ5在蓝天白云之下,那一座座高耸的全彩屏负氧离子监测站,如同一支支科技的绿芽,静静破土而出,为这片土地带来了新的生命力。这些现代化的设备不仅美化了环境,更是我们呼吸健康守护者,它们的存在让我们的…

OpenHarmony内核编程实战

在正式开始之前,对于刚接触OpenHarmony的伙伴们,面对大篇幅的源码可能无从下手,不知道怎么去编码写程序,下面用一个简单的例子带伙伴们入门。 ▍任务 编写程序,让开发板在串口调试工具中输出”Hello,Open…

TS函数类型

函数类型表达式 function hello(x: string) {console.log(x) } //greeter函数的参数是一个函数fn,fn也有一个string类型参数,无返回值。 function greeter(fn: (a: string) > void) {fn(hello) } greeter(hello)也可以把定义参数类型的语句单独提取出…

Ubuntu20.04下PCL安装,查看,卸载等操作

Ubuntu20.04下PCL安装,查看,卸载等操作 项目来源 https://github.com/PointCloudLibrary/pclhttps://pointclouds.org/documentation/modules.htmlhttps://pcl.readthedocs.io/projects/tutorials/en/master/ 点云学习: https://github.c…

Day57-Nginx反向代理与负载均衡初步应用

Day57-Nginx反向代理与负载均衡初步应用 1. Nginx代理介绍2. Nginx代理常见模式2.1 正向代理2.2 反向代理2.3 正向与反向代理区别 3. Nginx代理支持协议4. Nginx反向代理场景实践5. lb01安装部署nginx 1. Nginx代理介绍 1)在没有代理的情况下,都是客户端…

苹果与百度合作,将在iPhone 16中使用生成式AI

3月25日,《科创板日报》消息,苹果将与百度进行技术合作,为今年即将发布的iPhone16、Mac系统和iOS 18提供生成式AI(AIGC)功能。 据悉,苹果曾与阿里巴巴以及另外一家国产大模型厂商进行了技术合作洽谈。最终…

信号处理--基于混合CNN和transfomer自注意力的多通道脑电信号的情绪分类的简单应用

目录 关于 工具 数据集 数据集简述 方法实现 数据读取 ​编辑数据预处理 传统机器学习模型(逻辑回归,支持向量机,随机森林) 多层感知机模型 CNNtransfomer模型 代码获取 关于 本实验利用结合了卷积神经网络 (CNN) 和 Transformer 组件的混合…

Qt 作业 24/3/26

1、实现闹钟 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime> #include <QLineEdit>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent …

FPGA之状态机学习

作为一名逻辑工程师&#xff0c;掌握和应用状态机设计是必不可少的。能够灵活的应用状态机是对逻辑工程师最基本的要求&#xff0c;状态机设计的好坏能够直接影响到设计系统的稳定性&#xff0c;所以学会状态机是非常的重要。 1.状态机的概念 状态机通过不同的状态迁移来完成特…

STM32之HAL开发——串口配置(源码)

串口收发原理框图&#xff08;F1系列&#xff09; 注意&#xff1a;数据寄存器有俩个一个是收一个是发&#xff0c;但是在标准库或者HAL库中没有特别区分开来是俩个寄存器&#xff01; USART 初始化结构体详解 HAL 库函数对每个外设都建立了一个初始化结构体&#xff0c;比如 …

如何快速在ESXi中嵌套部署一台ESXi服务器?

正文共&#xff1a;1234 字 26 图&#xff0c;预估阅读时间&#xff1a;2 分钟 我们之前介绍过VMWare ESXi服务器镜像的定制&#xff08;VMware ESXi部署镜像定制&#xff09;和部署&#xff08;惠普VMware ESXI 6.7定制版部署&#xff09;&#xff0c;但是还没有介绍过ESXi版本…

YOLOv8改进 | 主干篇 | 修复官方去除掉PP-HGNetV2的通道缩放功能(轻量又涨点,全网独家整理)

一、本文介绍 本文给大家带来的改进机制是大家在跑RT-DETR提供的HGNetV2时的一个通道缩放功能&#xff08;官方在前几个版本去除掉的一个功能&#xff09;&#xff0c;其中HGNetV2当我们将其集成在YOLOv8n的模型上作为特征提取主干的时候参数量仅为230W 计算量为6.7GFLOPs该网…

【机器学习之---数学】随机游走

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 随机游走 1. 概念 1.1 例1 在你的饮食俱乐部度过了一个富有成效的晚上后&#xff0c;你在不太清醒的状态下离开了。因此&#xff0c;你会醉醺醺地在展…

【opencv】实时位姿估计(real_time_pose_estimation)—3D模型注册

相机成像原理图 物体网格、关键点&#xff08;局内点、局外点&#xff09;图像 box.ply resized_IMG_3875.JPG 主程序main_registration.cpp 主要实现了利用OpenCV库进行3D模型的注册。主要步骤包括加载3D网格模型、使用鼠标事件选择对应的3D点进行2D到3D的注册、利用solvePnP算…

在django中使用kindeditor出现转圈问题

在django中使用kindeditor出现转圈问题 【一】基础检查 【1】前端检查 确保修改了uploadJson的默认地址 该地址需要在路由层有映射关系 确认有加载官方文件 kindeditor-all-min.js确保有传递csrfmiddlewaretoken 或者后端关闭了csrf验证 <textarea name"content&qu…

无人驾驶矿卡整体解决方案(5g物联网通信方案)

​无人驾驶矿卡是智能矿山的重要组成部分,通过远程操控替代人工驾驶,可以显著提高采矿效率和作业安全性。但要实现无人驾驶矿卡,需要依赖于可靠高效的通信网络,来传输现场视频、控制指令和运行数据。以下是某大型煤矿在部署无人驾驶矿卡时,所采用的星创易联物联网整体解决方案。…

如何区分模型文件是稳定扩散模型和LORA模型

区分模型文件是否为稳定扩散模型&#xff08;Stable Diffusion Models&#xff09;或LORA模型&#xff08;LowRank Adaptation&#xff09;通常需要对模型的结构和内容有一定的了解。以下是一些方法来区分这两种模型文件&#xff1a; 1. 文件格式和结构 稳定扩散模型&#xff1…

词根词缀基础

一&#xff0e;词根词缀方法&#xff1a; 1. 类似中文的偏旁部首&#xff08;比如“休”单人旁木→一个人靠木头上休息&#xff09; 2. 把单词拆分后&#xff0c;每一个部分都有它自己的意思&#xff0c;拼凑在一起就构成了这个单词的意思 3. 一个规律&#xff0c;适用大部分…

基于nodejs+vue多媒体素材管理系统python-flask-django-php

该系统采用了nodejs技术、express 框架&#xff0c;连接MySQL数据库&#xff0c;具有较高的信息传输速率与较强的数据处理能力。包含管理员、教师和用户三个层级的用户角色&#xff0c;系统管理员可以对个人中心、用户管理、教师管理、资源类型管理、资源信息管理、素材类型管理…

论文阅读-《Lite Pose: Efficient Architecture Design for 2D Human Pose Estimation》

摘要 这篇论文主要研究了2D人体姿态估计的高效架构设计。姿态估计在以人为中心的视觉应用中发挥着关键作用&#xff0c;但由于基于HRNet的先进姿态估计模型计算成本高昂&#xff08;每帧超过150 GMACs&#xff09;&#xff0c;难以在资源受限的边缘设备上部署。因此&#xff0…