ABP引入SqlSugar框架创建使用的方法
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了ABP引入SqlSugar框架创建使用的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ABP引入SqlSugar框架创建使用的方法文章都会有所收获,
千家信息网最后更新 2026年11月02日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安全错误
数据库的锁怎样保障安全
喔噻互联网科技有限公司
广东万易互联网科技有限公司惠州分公司
互联网与科技金融数据
美国互联网科技
奇酷互联网络科技
狮子座互联网科技有限公司
善班互联网科技有限公司
深圳天众互联网科技公司
滨湖区互联网智能科技产品供应
太原新华互联网科技学校怎么样
现代科技和互联网有关系吗
互联网经济与金融科技
哈尔滨屹滨互联网科技有限公司
互联网科技和信息
互联网保险科技创业
企晟互联网信息科技有限公司
华中科技大学互联网的牛人
互联网科技手抄报图片
优雇互联网科技有限公司
上海旺乐尼互联网科技有限公司
互联网科技
互联网 科技公司
智慧科技互联网
中国最先进互联网科技公司
上海宁丞科技互联网
健康食品互联网创新科技园项目
小米互联网科技园入驻
富国互联网金融科技混合基金
互联网科技企业商标注意事项
盐城市攀科互联网科技有限公司