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

 更新时间:2025年02月12日 10:57:35   作者:菜到极致就是渣  
文章介绍了如何在.NET中使用Entity Framework Core框架连接Oracle数据库,包括安装必要的NuGet包、配置连接字符串、创建实体类和数据库上下文类、注册数据库上下文服务以及测试数据库数据,感兴趣的朋友一起看看吧

一、Nutget包添加

一定要安装Oracle.MangedDataAccess,他是Oracle的驱动程序。如果是使EntityFrameworkCore框架操作Oracle,则还需要引入Oracle.EntityFrameWorkCore

二、 配置文件

在appsetting.json文件中写好数据的连接信息,这里我本来使用的是Data source=tns别名,但是报错了,后面我也看了tnsnames.ora中的信息,tns别名也没有错。但是一直报错,所以我只能将这个连接信息全部写全了。

{
  "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默认的话不管是大写还是小写,最后都会转换成大写,所以如果实体类的名字如果和表明不一致的话(大写小写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<People> peoples { get; set; }
    }
}

五、将数据库上下文服务注册到容器

Program.cs

using Microsoft.EntityFrameworkCore;
using OracleConnectTest.Data;
var builder = WebApplication.CreateBuilder(args);
//依赖项注入
builder.Services.AddDbContext<OracleConnectTestContext>(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<OracleConnectTest.Models.People>;
@foreach(var item in Model){
    <p>@item.id</p>
    <p>@item.name</p>
}

到此这篇关于.Net使用EF Core框架如何连接Oracle的文章就介绍到这了,更多相关.Net EF Core连接Oracle内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • ASP.NET 输出图片简单代码

    ASP.NET 输出图片简单代码

    获取指定路径中的图片的二进制数据,在页面中输出
    2010-02-02
  • Visual Studio2022创建WebAPI项目步骤记录

    Visual Studio2022创建WebAPI项目步骤记录

    不管是前后端分离还是提供数据服务,WebApi使用的越来越广泛,而且.NET Core也是我们.NET开发人员未来发展的趋势,所以说学会使用.NET Core Api是非常有必要的,这篇文章主要给大家介绍了关于Visual Studio2022创建WebAPI项目步骤的相关资料,需要的朋友可以参考下
    2024-01-01
  • .NET Core 基于Websocket的在线聊天室实现

    .NET Core 基于Websocket的在线聊天室实现

    这篇文章主要介绍了.NET Core 基于Websocket的在线聊天室实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 超好用轻量级MVC分页控件JPager.Net

    超好用轻量级MVC分页控件JPager.Net

    本文给大家分享的是一款超好用轻量级MVC分页控件--JPager.Net,小编自己也在使用,非常的不错,推荐给大家。
    2016-06-06
  • C#实现HTTP协议迷你服务器(两种方法)

    C#实现HTTP协议迷你服务器(两种方法)

    用C#语言实现HTTP协议的服务器类本文将以两种稍微有差别的方式用C#语言实现;要完成高性能的Web服务功能,通常都是需要写入到服务,如IIS,Apache Tomcat感兴趣的朋友可以了解下,或许对你学习c#有所帮助
    2013-02-02
  • aspx超强木马查杀与防范(web网马)

    aspx超强木马查杀与防范(web网马)

    下面代码是一个aspx超强木马,功能很多,大家在服务器上见到一定要小心
    2013-12-12
  • asp.net解决上传4M文件限制

    asp.net解决上传4M文件限制

    只需要在服务器上修改如下文件就可以使asp.net突破上传4M文件的限制,大家参考使用吧
    2014-01-01
  • ADO.Net对oracle数据库操作的实例代码

    ADO.Net对oracle数据库操作的实例代码

    ADO.Net对oracle数据库操作的实例代码,需要的朋友可以参考一下
    2013-06-06
  • .NET使用Hisql实现菜单管理(增删改查)

    .NET使用Hisql实现菜单管理(增删改查)

    这篇文章介绍了.NET使用Hisql实现菜单管理(增删改查)的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • jQuery+Ajax用户登录功能的实现

    jQuery+Ajax用户登录功能的实现

    前几天把jbox源码修改成仿QQ空间模拟窗口后发现有很多人在关注。今天就贴一下我利用该模拟窗口实现的用户登录功能的代码。
    2009-11-11

最新评论