ABP引入SqlSugar框架创建使用的方法
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍了ABP引入SqlSugar框架创建使用的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ABP引入SqlSugar框架创建使用的方法文章都会有所收获,
千家信息网最后更新 2025年01月18日ABP引入SqlSugar框架创建使用的方法
这篇文章主要介绍了ABP引入SqlSugar框架创建使用的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ABP引入SqlSugar框架创建使用的方法文章都会有所收获,下面我们一起来看看吧。
一 新建类库
为了代码清晰,我新建了一个类库。引入了SqlSugar的框架包,2个仓储类,1个DbContext
声明实体
[SugarTable("BasBloodLevel")] public class BasBloodLevel { [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } public string Code { get; set; } }
二 基本仓储
先实现基本仓储IBaseRepository 与 BaseRepository
////// 基类接口,其他接口继承该接口 /// ///public interface IBaseRepository where TEntity : class { /// /// 根据ID查询 /// /// ///Task QueryByID(object objId); /// /// 添加 /// /// ///Task Add(TEntity model); /// /// 修改 /// /// ///Task Update(TEntity model); /// /// 删除 /// /// ///Task DeleteByIds(object[] ids); }
////// 基类实现 /// ///public class BaseRepository : DbContext , IBaseRepository where TEntity : class, new() { /// /// 写入实体数据 /// /// ///public async Task Add(TEntity model) { //这里需要注意的是,如果使用了Task.Run()就会导致 sql语句日志无法记录改成下面的 //var i = await Task.Run(() => Db.Insertable(model).ExecuteCommand()); var i = await Db.Insertable(model).ExecuteCommandAsync(); return i > 0; } /// /// 根据ID删除 /// /// ///public async Task DeleteByIds(object[] ids) { var i = await Db.Deleteable ().In(ids).ExecuteCommandAsync(); return i > 0; } /// /// 根据ID查询一条数据 /// /// ///public async Task QueryByID(object objId) { return await Db.Queryable ().InSingleAsync(objId); } /// /// 更新实体数据 /// /// ///public async Task Update(TEntity model) { //这种方式会以主键为条件 var i = await Db.Updateable(model).ExecuteCommandAsync(); return i > 0; } }
三 实现SqlSugar的DB
此处的 ConnectionString 地址,我们可以直接读取 ABP框架的配置文件,但是为了方便我直接写死了
public class DbContextwhere T : class, new() { public DbContext() { Db = new SqlSugarClient(new ConnectionConfig() {//数据库地址我们可以直接读取 ABP框架的配置文件,但是为了方便我直接写死了 ConnectionString = "Server=****; Database=****; Uid=sa; Pwd=****;MultipleActiveResultSets=true;", DbType = DbType.SqlServer, InitKeyType = InitKeyType.Attribute,//从特性读取主键和自增列信息 IsAutoCloseConnection = true,//开启自动释放模式 }); //调式代码 用来打印SQL Db.Aop.OnLogExecuting = (sql, pars) => { Console.WriteLine(sql + "\r\n" + Db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value))); Console.WriteLine(); }; } //注意:不能写成静态的 public SqlSugarClient Db;//用来处理事务多表查询和复杂的操作 public SimpleClient CurrentDb { get { return new SimpleClient (Db); } }//用来操作当前表的数据 public SimpleClient BasBloodLevelDb { get { return new SimpleClient (Db); } }//用来处理User表的常用操作 }
四 实现依赖注入
这样我们就能全局使用了
[DependsOn(typeof(AbpZeroCoreModule))] public class Module : AbpModule { public override void Initialize() { IocManager.Register(typeof(IBaseRepository<>), typeof(BaseRepository<>), DependencyLifeStyle.Singleton); //依赖注入程序集 IocManager.RegisterAssemblyByConvention(typeof(Module).GetAssembly()); } }
既然要实现依赖注入,那肯定要初始化这个类触发注入了。我选择在EF层里加,这样可以不影响原有的EF层初始化
五 应用层使用
直接引用对应的 IBaseRepository仓储
public class BasBloodBreedAppService : BloodTestLibSystemAppServiceBase,IApplicationService { private IBaseRepository_baseRepository { get; set; } public BasBloodBreedAppService(IBaseRepository baseRepository) { _baseRepository = baseRepository; } public async Task GetBase() { var ce=await _baseRepository.QueryByID(1); return ce; } }
证明一下我是成功的
关于"ABP引入SqlSugar框架创建使用的方法"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"ABP引入SqlSugar框架创建使用的方法"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
框架
数据
方法
仓储
实体
接口
知识
查询
代码
内容
地址
文件
篇文章
处理
配置
复杂
成功
事务
价值
信息
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
嵌入式软件开发的薪资
数据中心服务器多少钱一台
保护我们的网络安全作文
国内双线高防服务器
注意网络安全的英文
软件开发培训 胡目的
数据库前端用什么语言
中国电子科技集团工业互联网
数据库日期之间查询
腾讯云备案阿里云服务器打不开
哪个sql数据库软件免费
湖南惠普服务器虚拟化价格
网络安全主题团日1000字
淘车宝贝汽车科技互联网
药品广告数据库聚荣是5秒
永济网络安全保卫
国际服吃鸡qq服务器维护
网络安全技术是指什么
计算机网络技术第二章总结
网络安全预算项目的
数据库原理学
河南智游网络技术公司 概况
黄浦区网络技术服务操作
网络安全透明背景图标
昌平区专业网络技术价格行情
互联网科技创新实验室
软件开发从业方向
深圳网络技术整合
消费软件开发
常州app软件开发中心