.Net使用EFCore框架连接Oracle的方法
使用EF Core连接Oracle数据库,整体流程大致分为几个步骤,下面逐一说明。 一、Nuget包添加 从Nuget包说起。这里必须安装Oracle.MangedDataAccess,它是Oracle的驱动程序。如果使用EntityFrameworkCore框架操作Oracle,则还需要引入Ora
使用EF Core连接Oracle数据库,整体流程大致分为几个步骤,下面逐一说明。
一、Nuget包添加

从Nuget包说起。这里必须安装Oracle.MangedDataAccess,它是Oracle的驱动程序。如果使用EntityFrameworkCore框架操作Oracle,则还需要引入Oracle.EntityFrameWorkCore。
二、 配置文件
在appsettings.json中配置连接信息。最初尝试使用Data source=tns别名,但报错了。检查了tnsnames.ora,确认别名没问题,但依然报错,所以只能把完整的连接字符串写全。
{
"ConnectionStrings": {
"oracleConnect": "User Id=用户名;Password=用户密码;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=服务名称)))"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
三、创建实体类
Oracle默认会将所有标识符转换为大写,因此实体类名和表名如果不一致(大小写敏感),就会报错。解决办法是用[Table]属性映射表名,用[Column]属性映射列名。
using System.ComponentModel.DataAnnotations.Schema;
namespace OracleConnectTest.Models
{
[Table("PEOPLE")]
public class People
{
//oracle默认全部是大写
[Column("ID")]
public int id { get; set; }
[Column("NAME")]
public string name { get; set; }
}
}
四、创建数据库上下文类
创建一个Data文件夹,把数据库上下文类放进去——这是个人习惯,当然也可以按项目规范来组织。
using Microsoft.EntityFrameworkCore;
using OracleConnectTest.Models;
using System.ComponentModel.DataAnnotations.Schema;
namespace OracleConnectTest.Data
{
public class OracleConnectTestContext : DbContext
{
public OracleConnectTestContext(DbContextOptions options) : base(options)
{
}
public DbSet peoples { get; set; }
}
}
五、将数据库上下文服务注册到容器
在Program.cs中注册服务,依赖注入的写法如下:
using Microsoft.EntityFrameworkCore; using OracleConnectTest.Data; var builder = WebApplication.CreateBuilder(args); //依赖项注入 builder.Services.AddDbContext(options => options.UseOracle(builder.Configuration.GetConnectionString("oracleConnect")));
六、测试数据库数据
(1)编写PeopleController
using Microsoft.AspNetCore.Mvc;
using OracleConnectTest.Data;
namespace OracleConnectTest.Controllers
{
public class PeopleController : Controller
{
private readonly OracleConnectTestContext _context;
public PeopleController(OracleConnectTestContext context)
{
_context = context;
}
public IActionResult Index()
{
var s=_context.peoples.ToList();
return View(s);
}
}
}
(2)编写People页面
@*
For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@{}
@model List;
@foreach(var item in Model)
{
@item.id
@item.name
}

WPS Office是一款面向macOS用户的综合办公套件,将文字处理、电子表格、演示文稿、PDF工具、模板与云协作整合在同一应用中。它兼容常见Microsoft Office格式,支持Intel及Apple芯片Mac,基础功能可免费使用,
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。
Adobe Photoshop 是面向摄影师、设计师和内容创作者的专业图像处理工具,可在 Windows 上完成照片修饰、选区抠图、图层合成、文字排版、绘画及生成式编辑。软件采用订阅授权,由 Creative Cloud 管理安装、更新与许
Adobe InDesign 是面向印刷与数字出版的专业页面排版工具,可制作书籍、杂志、宣传册、海报、交互式 PDF 和电子书。它提供精细的文字样式、多页面管理、印前检查及多格式输出能力,并能与 Photoshop、Illustrator
Adobe Illustrator 是用于绘制矢量图形、插画、图标、徽标和版式的专业设计工具。它以路径和锚点为核心,作品放大后仍能保持清晰,并提供画板、文字、渐变、图像描摹及精确变换等功能,适合品牌视觉、印刷物料、数字界面和商业插画创作。













