当前位置: 首页 > 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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 原生PHP/JS自主开发的交友内核框架婚恋交友系统V10
  • 【嵌入式硬件】快衰减和慢衰减
  • SqlSugar删除没有定义主键的实体类对应的数据库表数据
  • 学习SQL如何使用CASE语句查询分析设备状态
  • antdesgin table 组件下载成excel
  • leetcode日记(47)螺旋矩阵Ⅱ
  • 谷粒商城实战笔记-44-前端基础-Vue-整合ElementUI快速开发/设置模板代码
  • html+css 动态效果
  • pdf自动生成书签
  • 单元测试的最佳实践
  • UDP/TCP协议解析
  • Windows 下的sqlserver数据拷贝到linux
  • Cadence23学习笔记(十四)
  • 深入浅出C语言指针(进阶篇)
  • 自动化测试--WebDriver API
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • classpath对获取配置文件的影响
  • CSS实用技巧
  • k8s如何管理Pod
  • MYSQL 的 IF 函数
  • Mysql数据库的条件查询语句
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 构造函数(constructor)与原型链(prototype)关系
  • 规范化安全开发 KOA 手脚架
  • 正则学习笔记
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • (7)svelte 教程: Props(属性)
  • (k8s)Kubernetes本地存储接入
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (ZT)一个美国文科博士的YardLife
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (每日一问)操作系统:常见的 Linux 指令详解
  • .cfg\.dat\.mak(持续补充)
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .Net Core 中间件验签
  • .NET Framework杂记
  • .NET/C#⾯试题汇总系列:⾯向对象
  • .net6 webapi log4net完整配置使用流程
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net开发引用程序集提示没有强名称的解决办法
  • .pop ----remove 删除
  • @JsonFormat 和 @DateTimeFormat 的区别
  • @ModelAttribute 注解
  • [ solr入门 ] - 利用solrJ进行检索
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [20161101]rman备份与数据文件变化7.txt
  • [20170705]diff比较执行结果的内容.txt
  • [20181219]script使用小技巧.txt
  • [bzoj2957]楼房重建
  • [C/C++]数据结构 栈和队列()
  • [C++]: 模板进阶