好久没写博客了,今天研究了下EF core连接Oracle,踩了几个坑,现在总结一下。
首先新建个应用程序,我这就就选择Asp.net core web 应用程序了。

然后输入项目名称,选择模板就好了,不过多说明。
这里就是创建好的项目文件结构。

然后开始安装相关的包,选择工具 --> NuGet包管理器-->管理解决方案的NuGet程序包 搜索Oracle
选择Oracle.EntityFrameworkWorkCore

接着新建个文件夹,用来存放数据库上下文,和数据库表相关的类。如下图,直接上代码。
数据库上下文类OracleDBContext

using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;namespace EFConnectOracle.Repository
{public partial class OracleDBContext: DbContext{public OracleDBContext(DbContextOptions<OracleDBContext> options): base(options){}protected override void OnModelCreating(ModelBuilder modelBuilder){modelBuilder.Entity<STUDENT>().HasNoKey();}public virtual DbSet<STUDENT> STUDENT { get; set; }}
}

实体类 STUDENT

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;namespace EFConnectOracle.Repository
{public class STUDENT{public string ID { get; set; }public string NAME { get; set; }}
}
//这里需要注意,字段名称类型要和数据库保持一致哦。

还有重要的一步不要忘了,如果是.net core程序,需要在Startup类中注册一下。

     services.AddDbContext<OracleDBContext>(options =>options.UseOracle(Configuration.GetConnectionString("OracleDBContext"), b => b.UseOracleSQLCompatibility("12")));

以及在appsettings.json中配置好数据库连接字符串

  "ConnectionStrings": {"OracleDBContext": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx.xxx.xxx.xxx)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=xxxxxx)));User ID=xxxxxxx;Password=xxxxxxx"},

上面这些都配置完成之后,接下来就可以测试下是否可以查询到数据了。在WeatherForecastController中实例化数据库上下文类。然后用.的方式查询到对应的实体类。代码如下

using EFConnectOracle.Repository;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;namespace EFConnectOracle.Controllers
{[ApiController][Route("[controller]")]public class WeatherForecastController : ControllerBase{private static readonly string[] Summaries = new[]{"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"};private readonly ILogger<WeatherForecastController> _logger;private readonly OracleDBContext _oracleDBContext;public WeatherForecastController(ILogger<WeatherForecastController> logger, OracleDBContext oracleDBContext){_logger = logger;_oracleDBContext = oracleDBContext;}[HttpGet]public IEnumerable<WeatherForecast> Get(){//查询数据库中的信息var students = _oracleDBContext.STUDENT.ToList();var rng = new Random();return Enumerable.Range(1, 5).Select(index => new WeatherForecast{Date = DateTime.Now.AddDays(index),TemperatureC = rng.Next(-20, 55),Summary = Summaries[rng.Next(Summaries.Length)]}).ToArray();}}
}

不出意外的话,应该就可以查询到对应表中的数据了。

ef core连接Oracle数据库相关推荐

  1. 0配置EF连接MySql数据库_第八节:EF Core连接MySql数据库

    一. 前提 1.安装EF Core连接MySQL的驱动,这里有两类: (1).Oracle官方出品:MySql.Data.EntityFrameworkCore (版本:8.0.17) (2).其他第 ...

  2. sqlserver连接字符串_10分钟使用EF Core连接MSSQL数据库

    (给DotNet加星标,提升.Net技能) 转自:Ron.liang cnblogs.com/viter/p/10243577.html 前言 在 .NET Core 2.2中Microsoft.As ...

  3. asp.netcore oracle,Asp.net core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库...

    Asp.net Core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库 1.前言 本次主要采用Asp.net core3.1 ...

  4. asp连接oracle 服务端,Asp.net core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库...

    Asp.net Core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库 1.前言 本次主要采用Asp.net core3.1 ...

  5. ef导入oracle数据类型不正确,EF Core操作Oracle踩坑记

    EF(Entity Framework)是微软标志性且成熟的ORM,从之前的.NET Framework时代就已经很常见了,但是给人的感觉还是偏"重",性能被不少人吐槽,倒是像Da ...

  6. 记一次EF Core连接MySql、Oracle

    点击上方"Dotnet9"添加关注哦 上上个月写的一篇文章,今天有同事问我使用EF Core连接MySql和Oracel的问题,我把这篇文章直接甩给了他. 下面是正文: 这几天研究 ...

  7. 阿里云 centos7静默安装oracle12c,使用navicat 连接oracle数据库

    阿里云 centos7静默安装oracle12c,使用navicat 连接oracle数据库 需要切换到阿里云镜像的,仅供参考 使用yum -y update更新软件 1. 关闭防火墙 systemc ...

  8. java连接phpstudy_java,_java连接Oracle数据库问题,java - phpStudy

    java连接Oracle数据库问题 五月 23, 2016 11:09:27 上午 org.apache.catalina.core.StandardWrapperValve invoke 严重: S ...

  9. 用ASP.Net(C#)连接Oracle数据库的方法

    今天看了一下asp.net连接oracle数据库的方法,得到了如下代码.这段代码打开了MyTable表,并把操作员的名字列出.字段类型是OracleString.读取的时候用的是字段编号,我不知道怎么 ...

最新文章

  1. mysql 报错 get error 28 from storage engine 解决方法
  2. objc swift 混编
  3. 干货 | 深入浅出分销体系
  4. WAS6集群部署及初步测试
  5. Product not scheduled in sales organization XXX,distribution channel
  6. 带你了解C#每个版本新特性
  7. 使用Bootstrap开发网站首页
  8. Percona XtraBackup热备份实践
  9. CloudIDE:为开发者写代码开启“加速”模式
  10. Linux部署Java环境
  11. 软件开发工程师应该具备哪些证书_智能展厅设计应该具备哪些特点?
  12. ARM指令集之乘法指令
  13. 制作纯净版WinPE2.0
  14. 做scratch游戏心得1
  15. MATLAB遗传算法解决旅行商(TSP)问题
  16. 【数据结构】【A鹿】malloc和其他相关预备知识
  17. 2021前端性能指标研究表(译)
  18. 在线学生计算机,计算机学生顶岗实习计划(网络版)
  19. 『每周译Go』Go 语言中的插件
  20. 论文解读TransFG: A Transformer Architecture for Fine-grained Recognition

热门文章

  1. java获取三个月之前时间与当前时间
  2. 三个月死磕Python是种什么样的体验?
  3. 用python成为一名顶级黑客
  4. 斜线表头html怎么做,Excel三栏斜线表头的完美制作方法
  5. 笔记本电脑没有wifi图标无法连接无线
  6. 最全解决方法:未解压的word文档修改保存后找不到
  7. bzoj1645 / P2061 [USACO07OPEN]城市的地平线City Horizon(扫描线)
  8. 格雷码在异步FIFO中的应用
  9. JAVA基础英语单词
  10. 人脑是一台计算机吗?