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来实现API服务(优势:跨平台),其中此技术比较新颖,其中连接Oracle遇到各种困难(特别是资料较少,各个插件版本比较多,且依赖的版本也有要求),经过各种尝试,最终可以连接上Oracle数据库,此处仅仅是demo。
2、技术路线
2.1 Asp.net core 3.1
ASP.NET Core 是一个跨平台的高性能开源框架,用于生成基于云且连接Internet的新式应用程序。 使用ASP.NET Core,您可以:
1)创建Web应用程序和服务、IoT应用和移动后端。
2)在Windows、macOS和Linux上使用喜爱的开发工具。
3)部署到云或本地。
4)在.NET Core或.NET Framework上运行。
为何选择 ASP.NET Core?
数百万开发人员使用过(并将继续使用)ASP.NET 4.x 创建Web应用。ASP.NET Core是重新设计的ASP.NET 4.x,更改了体系结构,形成了更精简的模块化框架。
ASP.NET Core 具有如下优点:
1)生成Web UI和Web API的统一场景。
2)针对可测试性进行构建。
3)Razor Pages可以使基于页面的编码方式更简单高效。
4)Blazor允许你在浏览器中使用C#和JavaScript。 共享全部使用.NET编写的服务器端和客户端应用逻辑。
5)能够在Windows、macOS和Linux上进行开发和运行。
6)开放源代码和以社区为中心。
7)集成新式客户端框架和开发工作流。
8)支持使用gRPC托管远程过程调用(RPC)。
9)基于环境的云就绪配置系统。
10)内置依赖项注入。
11)轻型的高性能模块化HTTP请求管道。
12)能够托管于以下各项:Kestrel、IIS、HTTP.sys、Nginx、Apache、Docker
13)并行版本控制。
14)简化新式Web开发的工具。
2.2 Microsoft.EntityFrameworkCore2.2.6
Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用Entity Framework数据访问技术。
EF Core 可用作对象关系映射程序(O/RM),以便于.NET开发人员能够使用.NET对象来处理数据库,这样就不必经常编写大部分数据访问代码了。
2.3 Oracle.EntityFrameworkCore2.1.19
此插件主要是为了连接Oracle数据库;
依赖项:
Microsoft.EntityFrameworkCore.Relational (>= 2.1.11 && < 3.0.0)
Oracle.ManagedDataAccess.Core (>= 2.19.60 && < 2.20.0)
3、总结
在经过两天的尝试,最大的坑是此Oracle.EntityFrameworkCore2.1.19插件需要有依赖插件,并且版本要对,否则一直会报错;
3.1尝试Citms.EntityFrameworkCore.Oracle连接Oracle
其中会报错:System.TypeLoadException:“Method 'get_Info' in type 'Microsoft.EntityFrameworkCore.Oracle.Infrastructure.Internal.OracleOptionsExtension' from assembly 'Citms.EntityFrameworkCore.Oracle, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.”。
3.2尝试Oracle.ManagedDataAccess.Core连接Oracle
最终通过ASP.NET Core3.1通过EF Core连接Oracle,需要注意依赖项版本号问题。
4、源码
4.1实体
[Table("数据库中表名")]public classBaseEntity
{
[Column("表中字段")]public string Id { get; set; }
[Column("表中字段")]public string Name { get; set; }
}
4.2 数据库上下文
public classEntityOracleDBContext: DbContext
{public static readonlyLoggerFactory MyLoggerFactory= new LoggerFactory(new[] { newDebugLoggerProvider() });public EntityOracleDBContext(DbContextOptions options) : base(options)
{
}protected override voidOnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity();
}protected override voidOnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.UseLoggerFactory(MyLoggerFactory);
}public DbSet TodoItems { get; set; }
}
4.3 Controller层
[Route("api/[controller]")]public classEmployeeController : Controller
{
EntityOracleDBContext context;publicEmployeeController(EntityOracleDBContext context)
{this.context =context;
}//GET: api/
[HttpGet]public IEnumerableGet()
{
List todoItems =context.TodoItems.ToList();return todoItems.Select(t=>t.Id);
}//GET api//5
[HttpGet("{id}")]public string Get(stringid)
{
BaseEntity todoItem=context.TodoItems.Find(id);returntodoItem.Name;
}//POST api/
[HttpPost]public void Post([FromBody]stringvalue)
{
}//PUT api//5
[HttpPut("{id}")]public void Put(int id, [FromBody]stringvalue)
{
}//DELETE api//5
[HttpDelete("{id}")]public void Delete(intid)
{
}
}
4.4 调取测试
https://localhost:5001/api/employee/927b582d-a897-4d7b-8cca-bd0c63386ad9
asp.netcore oracle,Asp.net core 3.1+EF Core2.2.6+Oracle.EntityFrameworkCore2.1.19连接Oracle数据库...相关推荐
- 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 ...
- ASP.NETCore学习记录(一)
ASP.NETCore学习记录(一) asp.net core介绍 Startup.cs ConfigureServices Configure 0. ASP.NETCore 介绍 ASP.N ...
- ASP.NETCore
0. ASP.NETCore 介绍 ASP.NETCore是一个新的开源和跨平台的框架,用于构建如Web应用.物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序.ASP.NET C ...
- asp oracle9i 链接oracle,解决使用ASP无法连接ORACLE 9i数据库的问题
今天,在一台WIN2K SERVER 服务器上,通过ASP安装在本机的 Oracle9i 时,发现错误,根本无法连接上数据库.其错误描述如下: Microsoft OLE DB Provider fo ...
- Java JDBC连接oracle、SQL server、My Sql数据库的驱动
JAVA创建以JDBC连接数据库的程序 ①加载JDBC驱动程序: 1.oracle---------JDBC try{//加载oracle的驱动类Class.forName("oracle. ...
- Navicat连接Oracle的几个问题及解决方案
Navicat连接Oracle的几个问题及解决方案 参考文章: (1)Navicat连接Oracle的几个问题及解决方案 (2)https://www.cnblogs.com/FrankLei/p/6 ...
- python3连接oracle 11G数据库
Python连接Oracle数据库 环境说明(保持各个关联环境版本对应非常重要): 系统环境:win10 64位 数据库版本:Oracle 11G 64位 python版本:python 3.7.8 ...
- oracle代码连接,Oracle连接核心知识点
一:开始进入Oracle的世界吧 借我学校一位Oracle学的很牛逼的老师一句话:学好Oracle,再去学习其他数据库的时候,你会有一种:一览众山小的感觉! 注意:本博客的所有Oracle的技术都是在 ...
- bde oracle 商友的流程_怎么用BDE连接Oracle?(100分)
配置BDE 开始->程序->Borland Delphi 5->BDE Administrator 1.建个数据模块,file->new->data module 2.在 ...
最新文章
- 数据洪流时代的芯片之变
- 自学python找工作难吗-大四应届毕业生,学了两个月Python,找工作感觉好难啊?...
- 2017年9月9日普级组 优美三角剖分
- 基于MIG控制器的DDR3读写控制详解
- Spring构造注入重载
- mysql 设置client char_mysql编码问题:show variables like “%char%”
- 使用canal实现MySQL 8 增量同步数据到 ElasticSearch 7.15.2中 linux
- 同比暴增3700%!百度取代谷歌成世界第二
- win下mysql数据库双机配置_[数据库]windows下使用mysql双机热备功能
- “编程能力差,90%输在了数学上!”骨灰级开发:其实你们都是瞎努力!!
- 【ASP.Net MVC3 】使用Unity 实现依赖注入
- 计算机技术需要学单片机吗,手把手教你学51单片机
- 樱花大战资源分析之二 SPR文件格式不完全分析
- 电竞天才Uzi退役:从网瘾少年到年薪千万,留下最大遗憾
- 按键精灵---后台按键及鼠标操作
- 立体栅格地图_基于八叉树表示的三维栅格地图路径规划系统及方法与流程
- 计算机多核启动原理,多核cpu工作原理 不进来看看?
- Android 自定义二维码
- High Version Count Issues
- qt -- QSpinBox、QDoubleSpinBox
热门文章
- 子菜单挤压下方块元素_小心上瘾!全新类型的消除游戏|《土耳其方块》
- mysql innodb 并发 插入 慢_Innodb 锁机制——一次插入慢查询的排查
- Apache ECharts各种图表页面展示
- PHP实现页面跳转的几种方法
- mysql 自增列 类型_MySQL--自增列学习
- ecies算法c语言实现,Bouncy Castle算法库中ECIES算法调用示例
- centos6.5 yum安装mysql_CentOS 6.5使用yum安装MySQL快速上手必备
- 【cmd】windows cmd 中判断命令执行成功
- 【oracle】to_date
- 设置按峰值带宽计费_如何理解串联谐振电路中的带宽?