这里写自定义目录标题
安装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();