ASP.NET Core Web API 连接Oracle数据库

安装VS2022

在这里插入图片描述
安装ASP.NET和Web开发

新建ASP.NET Core Web API 项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置项目结构

在项目文件夹中,创建三个文件夹:Models、Data 。
在这里插入图片描述

添加连接数据库需要的包Oracle.EntityFrameworkCore

工具>NuGet 包管理器(N)>管理解决方案的 NuGet 程序包(N)…
在这里插入图片描述
在这里插入图片描述

添加数据库连接字符串

在 appsettings.json 文件中添加数据库连接字符串:

{
  "ConnectionStrings": {
    "OracleConnection": "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=IP)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=数据库)));User Id=账号;Password=密码;"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  }
}

Oracle创建表

在这里插入图片描述

创建实体类

在 Models 文件夹中创建 CUSTSPR.cs 文件,并添加以下代码:
注意:必须包含主键

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace WebAPI.Models
{
    public class CUSTSPR
    {
        [Key]
        [Column("CUST")]
        public string CUST { get; set; }

        [Column("SPR")]
        public string? SPR { get; set; }

        [Column("MTRL_ID")]
        public string? MTRL_ID { get; set; }

        [Column("QTY")]
        public string? QTY { get; set; }

        [Column("DATECODE")]
        public string? DATECODE { get; set; }

        [Column("DATEZE")]
        public string? DATEZE { get; set; }

        [Column("NRID")]
        public string? NRID { get; set; }

        [Column("WRID")]
        public string? WRID { get; set; }
    }
}


创建数据库上下文

在 Data 文件夹中创建 YourDbContext.cs 文件,并添加以下代码:

using Microsoft.EntityFrameworkCore;
using WebAPI.Models;
using WebApi1.Models;

namespace WebApi1.Data
{
    public class YourDbContext : DbContext
    {
        public YourDbContext(DbContextOptions<YourDbContext> options)
           : base(options)
        {
        }
        
        public virtual DbSet<CUSTSPR> CUSTSPR { get; set; }
    }
}

创建控制器

在 Controllers 文件夹中创建 YourController.cs 文件,并添加以下代码:

using Microsoft.AspNetCore.Mvc;
using WebApi1.Data;

namespace WebApi1.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class YourController : ControllerBase
    {
        private readonly YourDbContext _dbContext;
        private readonly ILogger<YourController> _logger;

        public YourController(YourDbContext dbContext, ILogger<YourController> logger)
        {
            this._dbContext = dbContext;
            this._logger = logger;
        }

        [HttpGet]
        public IActionResult GetTYRuleCodes(string? cust)
        {
            try
            {
                var ruleCodes = string.IsNullOrEmpty(cust) ? _dbContext.CUSTSPR
                    .ToList() : _dbContext.CUSTSPR.Where(code => code.CUST == cust)
                    .ToList();

                return Ok(ruleCodes);
            }
            catch (Exception ex)
            {
                _logger.LogError($"An error occurred: {ex.Message}");
                return BadRequest($"An error occurred while fetching data: {ex.Message}");
            }
        }
    }
}


配置Program.cs

在 Program.cs 文件中,添加数据库上下文的配置和服务注册:

using Microsoft.EntityFrameworkCore;
using WebApi1.Data;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

builder.Services.AddDbContext<YourDbContext>(options => {
    string connectionString = builder.Configuration.GetConnectionString("OracleConnection"); ;
    options.UseOracle(connectionString);
});
builder.Services.AddControllers();

var app = builder.Build();
app.UseSwagger();
app.UseSwaggerUI();
app.UseAuthorization();
app.MapControllers();
app.Run();

运行

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上进猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值