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

Sqlsugar Oracle 配置 和服务注册以及使用

关于Sqlsugar

项目模板:

实体(仅参考 可以不看)

-- inpatient.cs

-- Recorddetail.cs

1. launchSettings.json 数据库配置 

"profiles": {
  "http": {
   ...默认
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development",
      "LOCAL_DB_TYPE": "Oracle",
      "LOCAL_DB_URL": "Data Source=域名/服务名;User ID=用户名;Password=密码"
    }
    }
  },

2.在program 将SqlSugarClient注入

builder.Services.AddKeyedScoped<ISqlSugarClient>("local", (_,_) => new SqlSugarClient(new ConnectionConfig
{
    DbType = DbType.Oracle,
    ConnectionString = builder.Configuration.GetSection("LOCAL_DB_URL").Value,
    IsAutoCloseConnection = true,
}));

AddKeyedScooped 是以键值对的方式注册。

3.在服务中使用SqlSugarClient

通过[FromKeyedServices("local")] 来获取键为”local“的这个SqlSugarClient

// --IService
 public interface IGetinformation // 定义接口
 {
     Task<Recorddetail> Getxaml(Inpatient inpatient);
 }

// --Service

public class Getinformation([FromKeyedServices("local")] ISqlSugarClient client) : IGetinformation // 接口实现
 public async Task<Recorddetail> Getxaml(Inpatient inpatient)
 {
        // 一个简单的条件查询
        // $"select noofinpat from Inpatient it where(it.patid == {inpatient.patid})"
        await client.Queryable<Inpatient>().Where(
                    it => it.patid == inpatient.patid &&
                    it.incount==inpatient.incount
                        ).Select(it=>it.noofinpat).FirstAsync();
 }

在program 再将这条服务注入

builder.Services.AddScoped<IGetinformation, Getinformation>();

4. 通过控制器中暴露请求

[Route("api/[controller]")]
[ApiController]
public class GetinformationController(IGetinformation service) : ControllerBase
{
    [HttpGet("[action]")]
    public async Task<EmrXamlResponse> GetXaml([FromBody] Inpatient inpatient)
    {
        var result = await service.Getxaml(inpatient);
        return new EmrXamlResponse()
        {
            xaml = result.content,
            Code = result.content==null ? -1 : 1,
            ErrMsg = result.name
        };
    }
}


http://www.kler.cn/a/406619.html

相关文章:

  • 111 - Lecture 10
  • 数字化那点事:一文读懂物联网
  • 在 Ubuntu 上安装 Yarn 环境
  • IText创建加盖公章的pdf文件并生成压缩文件
  • Go语言的并发与管道
  • 要素市场与收入分配
  • 图文详解Docker下配置、测试Redis
  • 前端高能组件库 Shadcn-UI
  • Chroma致茂Chroma61815回收式电网模拟电源
  • SQL 分页查询详解
  • [表达式]七个古墓
  • leetcode 919.完全二叉树插入器
  • MacOS通过X11转发远程运行virt-manager进行虚机分配
  • 笔记记录 k8s-install
  • Ubuntu文件系统简记
  • 如何删除Kafka中的数据以及删除topic
  • aws配置飞书告警通知
  • Elasticsearch面试内容整理-高级特性
  • 基于Redis实现的手机短信登入功能
  • Android开发实战班 - 现代 UI 开发之 Modifier 全面应用
  • HarmonyOS笔记5:ArkUI框架的Navigation导航组件
  • 第 21 章 - Go lang反射机制
  • (python)unittest框架
  • 《线性代数的本质》
  • 拥抱极简主义前端开发:NoCss.js 引领无 CSS 编程潮流
  • 基于Springboot+Vue动漫推荐平台管理系统(源码+lw+讲解部署+PPT)