Net8 ABP VNext集成FreeSql、SqlSugar

ABP可以快速搭建开发架构,但是内置的是EFCore,国内中小企业使用FreeSql与SqlSugar还是较多,为新手提供使用提供参考

ABP、FreeSql、SqlSugar参考地址:

ABP Framework | Open source web application framework for ASP.NET Core

指南 | FreeSql 官方文档

SqlSugar .Net ORM 5.X 官网 、文档、教程 - SqlSugar 5x - .NET果糖网

打开abp官网

复制到命令行,创建解决方案,创建后如图

打开创建的解决方案

修改数据库连接配置,运行,生成数据库

添加实体与IRepository接口,如图

生成实体表,方法此处省略,请自行到官网查看文档,或者参考我的笔记(下载链接在最上面)

用Navicat Premium 连接mysql

添加SqlSugarCore

添加FreeSql.All

具体原理请参考ABP官方Dapper 集成

添加MESFreeSqlModule、FreeSqlRepository、SqlSugarRepository、MESSqlSugarModule

代码

public class MESFreeSqlModule : AbpModule
{public override void ConfigureServices(ServiceConfigurationContext context){var configuration = context.Services.GetConfiguration();var connectionString = configuration.GetConnectionString("Default");           var freeSql = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, connectionString).Build();context.Services.AddSingleton<IFreeSql>(freeSql);}
}
  public abstract class FreeSqlRepository : DomainService{protected IFreeSql FreeSql => LazyServiceProvider.LazyGetRequiredService<IFreeSql>();private ICancellationTokenProvider CancellationTokenProvider =>LazyServiceProvider.LazyGetService<ICancellationTokenProvider>(NullCancellationTokenProvider.Instance);protected virtual CancellationToken GetCancellationToken(CancellationToken preferredValue = default){return CancellationTokenProvider.FallbackToProvider(preferredValue);}}
    public abstract class SqlSugarRepository : DomainService{protected ISqlSugarClient SugarClient => LazyServiceProvider.LazyGetRequiredService<ISqlSugarClient>();private ICancellationTokenProvider CancellationTokenProvider =>LazyServiceProvider.LazyGetService<ICancellationTokenProvider>(NullCancellationTokenProvider.Instance);protected virtual CancellationToken GetCancellationToken(CancellationToken preferredValue = default){return CancellationTokenProvider.FallbackToProvider(preferredValue);}}
public class MESSqlSugarModule : AbpModule
{public override void ConfigureServices(ServiceConfigurationContext context){var configuration = context.Services.GetConfiguration();var connectionString = configuration.GetConnectionString("Default"); context.Services.AddSingleton<ISqlSugarClient>(s =>{                SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig(){DbType = SqlSugar.DbType.MySql,ConnectionString = connectionString,IsAutoCloseConnection = true,ConfigureExternalServices = new ConfigureExternalServices(){EntityService = (property, column) =>{var attributes = property.GetCustomAttributes(true);//get all attributes if (attributes.Any(it => it is KeyAttribute))// by attribute set primarykey{column.IsPrimarykey = true; //有哪些特性可以看 1.2 特性明细}//可以写多个,这边可以断点调试// if (attributes.Any(it => it is NotMappedAttribute))//{//    column.IsIgnore= true; //}},EntityNameService = (type, entity) =>{var attributes = type.GetCustomAttributes(true);if (attributes.Any(it => it is TableAttribute)){var attr = (attributes.First(it => it is TableAttribute) as TableAttribute);entity.DbTableName = attr.Name;}}}},db =>{                   db.Aop.OnLogExecuting = (sql, pars) =>{};});return sqlSugar;});}

上面为什么加ConfigureExternalServices这段代码,参考【实体配置】实体使用自定义特性,如下图

增加Repository数据仓库,实现数据读写

同一个接口不允许同时使用FreeSql与SqlSugar,可以右建先排除掉,方便测试

添加AppService业务层

在JC.AI.MES.HttpApi.Host注入MESSqlSugarModule

启动调试即可

没有基础的可以下载我的ABP Vnext敏捷开发笔记

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql下载教程

什么是mysql MySQL是一种开源的关系型数据库管理系统&#xff0c;由瑞典MySQL AB公司开发&#xff0c;现在由Oracle公司维护。MySQL支持多个操作系统&#xff0c;包括Linux、Windows、macOS等。它是一种客户端/服务器模式的数据库&#xff0c;提供高效、可靠、稳定的数据存储和…

如何判断DNS解析故障?

DNS解析负责将域名解析到对应的IP地址&#xff0c;从而实现用户通过域名访问站点的效果。因此DNS解析是整个互联网中非常关键和基础的一个环节&#xff0c;但也是众多网站运营者和管理者经常忽视的一个环节。所以在出现DNS解析错误时&#xff0c;很多人都会感到手足无措&#x…

最新基于R语言lavaan结构方程模型(SEM)技术

原文链接&#xff1a;最新基于R语言lavaan结构方程模型&#xff08;SEM&#xff09;技术https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247596681&idx4&sn08753dd4d3e7bc492d750c0f06bba1b2&chksmfa823b6ecdf5b278ca0b94213391b5a222d1776743609cd3d14…

【供应链】2007-2022上市公司供需波动程度测算(附原始数据+代码)

数据说明&#xff1a;参考孙兰兰&#xff08;2022&#xff09;、巫强&#xff08;2023&#xff09;的方法测算出2007-2022年上市公司供需波动程度。数据来源&#xff1a;企业年报时间跨度&#xff1a;2007-2022年数据范围&#xff1a;A股上市公司数据指标&#xff1a; 证券代码…

分享软件项目实施方案模板

本项目在实施过程中将遵守做到以下几个方面&#xff1a; 与建设单位共同完成整个系统软件、网络等设计,负责系统的开发、测试、调试、人员培训、系统的试运行和交付&#xff0c;并保证系统质量。负责系统的维护、应用软件的升级和更新。提出对系统硬件设备的相关技术要求。在项…

Linux下使用open3d进行点云可视化(.bin文件)

整个场景可视化&#xff1a; import numpy as np import open3d as o3ddef read_kitti_bin_point_cloud(bin_file):# 加载.bin文件point_cloud_np np.fromfile(bin_file, dtypenp.float32).reshape(-1, 4)# 仅使用X, Y, Z坐标&#xff0c;忽略反射率point_cloud_o3d o3d.geo…

Groovy语言

1 Groovy介绍 1.1 Groovy介绍 Groovy是一种编程语言&#xff0c;它结合了Java的强大功能和脚本语言的简洁性。它具有动态类型、易读的语法、与Java的紧密集成、脚本编程能力、强大的闭包等特点。 1.2 Groovy SQL介绍 Groovy SQL是 Groovy 编程语言的一部分&#xff0c;用于…

【机器学习】进阶学习:详细解析Sklearn中的MinMaxScaler---原理、应用、源码与注意事项

【机器学习】进阶学习&#xff1a;详细解析Sklearn中的MinMaxScaler—原理、应用、源码与注意事项 这篇文章的质量分达到了97分&#xff0c;虽然满分是100分&#xff0c;但已经相当接近完美了。请您耐心阅读&#xff0c;我相信您一定能从中获得不少宝贵的收获和启发~ &#x1f…

MachineSink - 优化阅读笔记

注&#xff1a;该优化与全局子表达式消除刚好是相反的过程&#xff0c;具体该不该做这个优化得看代价模型算出来的结果(有采样文件指导算得会更准确) 该优化过程将指令移动到后继基本块中&#xff0c;以便它们不会在不需要其结果的路径上执行。 该优化过程并非旨在替代或完全…

HBase安装,配置,启动,检查

目录: 一、HBase安装&#xff0c;配置 1、下载HBase安装包 2、解压&#xff0c;配置环境变量并激活 3、hbase 配置 4、将hadoop和zookeeper的配置文件创建软连接放在hbase配置目录 5、配置 regionserver 二、HBase启动与关闭&#xff0c;安装检验 1、启动关闭hbase的命令 2、 检…

安装配置Spark集群

安装Spark集群主要包括以下步骤&#xff1a; 1、下载Spark安装包&#xff0c;在各节点中安装部署spark集群 2、配置整合 3、启动并测试 下载Spark 可以从官方网站下载合适的版本。当前环境已经提供了安装包&#xff0c;存放在 /opt/software目录下。 在node1节点上安装Sp…

微服务day06-Docker

Docker 大型项目组件较多&#xff0c;运行环境也较为复杂&#xff0c;部署时会碰到一些问题&#xff1a; 依赖关系复杂&#xff0c;容易出现兼容性问题 开发、测试、生产环境有差异 1.什么是Docker? 大型项目组件很多&#xff0c;运行环境复杂&#xff0c;部署时会遇到各种…