ABP引入SqlSugar框架创建使用的方法
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,这篇文章主要介绍了ABP引入SqlSugar框架创建使用的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ABP引入SqlSugar框架创建使用的方法文章都会有所收获,
千家信息网最后更新 2024年11月27日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安全错误
数据库的锁怎样保障安全
正霸软件开发有限公司
江西赣才网络技术有限公司
白云区设备软件开发
吉林专业网络技术推广
天择网络技术怎么样
福田网络安全服务价格
家里电脑能发送接收数据库
中学生网络安全教育班会课
pop3sohu是什么服务器
微信服务器可以更改吗
品牌网络技术推广优点
惠科网络技术有限公司招聘
有向图 数据库设计
个人网络安全定义
2008数据库怎么分配大小
引文检索功能数据库
海信软件开发实习生
山东移动服务器调试
广州互联网软件开发费用
网络安全的时事新闻
数据库实验报告 定义数据库
网络安全工作会议简报
网络安全工程山东学校
方舟如何开服务器
佛山自主可控软件开发市价
万物互联的网络安全
ongo数据库设置
yii2 数据库操作
浙江互联网科技独角兽
山西常见软件开发代理价格