Net8 ABP VNext集成FreeSql、SqlSugar

2024-03-11 22:20

本文主要是介绍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敏捷开发笔记

这篇关于Net8 ABP VNext集成FreeSql、SqlSugar的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/799264

相关文章

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

SpringBoot使用注解集成Redis缓存的示例代码

《SpringBoot使用注解集成Redis缓存的示例代码》:本文主要介绍在SpringBoot中使用注解集成Redis缓存的步骤,包括添加依赖、创建相关配置类、需要缓存数据的类(Tes... 目录一、创建 Caching 配置类二、创建需要缓存数据的类三、测试方法Spring Boot 熟悉后,集成一个外

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public

SpringBoot3集成swagger文档的使用方法

《SpringBoot3集成swagger文档的使用方法》本文介绍了Swagger的诞生背景、主要功能以及如何在SpringBoot3中集成Swagger文档,Swagger可以帮助自动生成API文档... 目录一、前言1. API 文档自动生成2. 交互式 API 测试3. API 设计和开发协作二、使用

SpringBoot如何集成Kaptcha验证码

《SpringBoot如何集成Kaptcha验证码》本文介绍了如何在Java开发中使用Kaptcha生成验证码的功能,包括在pom.xml中配置依赖、在系统公共配置类中添加配置、在控制器中添加生成验证... 目录SpringBoot集成Kaptcha验证码简介实现步骤1. 在 pom.XML 配置文件中2.

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

【Shiro】Shiro 的学习教程(三)之 SpringBoot 集成 Shiro

目录 1、环境准备2、引入 Shiro3、实现认证、退出3.1、使用死数据实现3.2、引入数据库,添加注册功能后端代码前端代码 3.3、MD5、Salt 的认证流程 4.、实现授权4.1、基于角色授权4.2、基于资源授权 5、引入缓存5.1、EhCache 实现缓存5.2、集成 Redis 实现 Shiro 缓存 1、环境准备 新建一个 SpringBoot 工程,引入依赖:

系统架构师-ERP+集成

ERP   集成平台end:就懒得画新的页