ABP引入SqlSugar框架创建使用的方法
发表于:2024-10-22 作者:千家信息网编辑
千家信息网最后更新 2024年10月22日,这篇文章主要介绍了ABP引入SqlSugar框架创建使用的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ABP引入SqlSugar框架创建使用的方法文章都会有所收获,
千家信息网最后更新 2024年10月22日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安全错误
数据库的锁怎样保障安全
想自学网络安全怎么学
模型软件开发流程
网络安全工作报告指南新疆
网络安全中学生观后感
文山服务器上门回收中心
win10 打开服务器
关于手机网络安全的
趣味风软件开发ppt模板
光遇2.7服务器连接失败
广东科技学院互联网金融
计算机三级网络技术需要考吗
小恩爱软件开发平台
lpwa 网络技术
在国外网络安全专业好吗
江苏省信息网络安全协会召开
wifi网络安全
网络安全法与实名制
app 服务器语言
r星在几个地方有服务器
工作表中数据库怎么删除
客户如何写软件开发文档
公司装网络安全
正规的浪潮服务器代理商哪里有
临汾民宿软件开发
中央网络安全办李长喜
2020网络安全知识内容
网络技术总监工作说明书
网络安全单招试卷
文化低可以学软件开发吗
3-6岁幼儿网络安全绘画