当前位置: 首页 > news >正文

ASP.NET Core在启动过程中使用数据库实例的几种方式

  ASP.NET Core项目启动过程中若要调用SqlSugarClient实例操作数据库数据(假设操作函数如下),特此记录以下几种方式:

public class PublicDataBuffer
{public static List<EnvironmentRecord> DataBuffer = new List<EnvironmentRecord>();public static void InitDataBuffer(ISqlSugarClient dbClient){DataBuffer.AddRange(dbClient.Queryable<EnvironmentRecord>().Select(r => new EnvironmentRecord()).ToPageList(1, 100).ToList());}
}

  1)如果是在SqlSugar数据库实例首次创建时调用操作函数,则在Program.cs文件的注册数据库服务的代码中调用即可。此时操作函数并未直接在启动过程中调用,而是在项目第一次操作数据库时调用。

builder.Services.AddSingleton<ISqlSugarClient>(s =>
{SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig(){DbType = SqlSugar.DbType.SqlServer,ConnectionString = builder.Configuration.GetValue<string>("dbContext"),IsAutoCloseConnection = false,});PublicDataBuffer.InitDataBuffer(sqlSugar);return sqlSugar;
});

  2)直接在Program.cs中创建数据库实例,既用于注册单例服务,又用于操作函数调用。

SqlSugarScope sqlSugar = new SqlSugarScope(new ConnectionConfig()
{DbType = SqlSugar.DbType.SqlServer,ConnectionString = builder.Configuration.GetValue<string>("dbContext"),IsAutoCloseConnection = false,
});uilder.Services.AddSingleton<ISqlSugarClient>(sqlSugar);
PublicDataBuffer.InitDataBuffer(sqlSugar);

  3)Program.cs中调用WebApplication的Services.GetService函数获取服务实例。

...
...
var app = builder.Build();
...
PublicDataBuffer.InitDataBuffer(app.Services.GetService<ISqlSugarClient>());
...
...

参考文献:
[1]https://blog.csdn.net/fromfire2/article/details/87348154
[2]https://blog.csdn.net/qq_41942413/article/details/134319869
[3]https://cloud.tencent.com/developer/article/2347045

http://www.lryc.cn/news/404754.html

相关文章:

  • AndroidStudio 编辑xml布局文件卡死问题解决
  • 使用 PVE 自签 CA 证书签发新证书
  • ubuntu 22.04安装Eigen
  • vue使用audio 音频实现播放与关闭(可用于收到消息给提示音效)
  • STM32 产生Hard Fault 调试方法
  • java-selenium 截取界面验证码图片并对图片文本进行识别
  • 【Linux】进程信号 --- 信号产生
  • Docker 容器中的 Docker Compose 简介
  • 手机日历如何与Outlook同步
  • python基础语法 007 文件操作-1读取写入
  • C语言·函数(超详细系列·全面总结)
  • Windows及Linux系统加固
  • Postman安装使用教程(详解)
  • 【嵌入式开发之标准I/O】文件I/O的基本概念,打开、关闭、定位函数及实例
  • C++文件操作-文本文件-读文件
  • 二叉树精选面试题
  • 如何在 Android 中删除和恢复照片
  • HarmonyOS Next原生应用开发-从TS到ArkTS的适配规则(六)
  • 功能测试与APPSCAN自动化测试结合的提高效率测试策略
  • AVL树的理解和实现[C++]
  • 云计算遭遇的主要安全威胁
  • [MySQL]02 存储引擎与索引,锁机制,SQL优化
  • ld,GNU 链接器介绍以及命令行参数详解
  • [web]-反序列化-base64
  • 【医学影像】RK3588+FPGA:满足远程诊疗系统8K音视频编解码及高效传输需求
  • 昇思25天学习打卡营第16天|基于MindSpore通过GPT实现情感分类
  • 服务器借助笔记本热点WIFI上网
  • 开发实战中Git的常用操作
  • python调用chrome浏览器自动化如何选择元素
  • 深入理解JS中的排序