商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > .Net使用EFCore框架连接Oracle的方法

.Net使用EFCore框架连接Oracle的方法

  发布于2026-07-23 阅读(0)

扫一扫,手机访问

使用EF Core连接Oracle数据库,整体流程大致分为几个步骤,下面逐一说明。

一、Nuget包添加

.Net使用EFCore框架连接Oracle的方法

从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

}

.Net使用EFCore框架连接Oracle的方法

本文转载于:https://www.jb51.net/aspnet/335668vjy.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注