.Net使用EF Core框架連接Oracle的方法
一、Nutget包添加

一定要安裝Oracle.MangedDataAccess,他是Oracle的驅(qū)動程序。如果是使EntityFrameworkCore框架操作Oracle,則還需要引入Oracle.EntityFrameWorkCore
二、 配置文件
在appsetting.json文件中寫好數(shù)據(jù)的連接信息,這里我本來使用的是Data source=tns別名,但是報(bào)錯(cuò)了,后面我也看了tnsnames.ora中的信息,tns別名也沒有錯(cuò)。但是一直報(bào)錯(cuò),所以我只能將這個(gè)連接信息全部寫全了。
{
"ConnectionStrings": {
"oracleConnect": "User Id=用戶名;Password=用戶密碼;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=服務(wù)名稱)))"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}三、創(chuàng)建實(shí)體類
因?yàn)镺racle默認(rèn)的話不管是大寫還是小寫,最后都會轉(zhuǎn)換成大寫,所以如果實(shí)體類的名字如果和表明不一致的話(大寫小寫Oracle是有區(qū)別的),會報(bào)錯(cuò)!
所以使用了[Table]屬性來映射對應(yīng)的表。
包括屬性名也是如此,使用了[Column]來映射對應(yīng)的屬性名
using System.ComponentModel.DataAnnotations.Schema;
namespace OracleConnectTest.Models
{
[Table("PEOPLE")]
public class People
{
//oracle默認(rèn)全部是大寫
[Column("ID")]
public int id { get; set; }
[Column("NAME")]
public string name { get; set; }
}
}四、創(chuàng)建數(shù)據(jù)庫上下文類
創(chuàng)建一個(gè)Data文件夾,將該類(數(shù)據(jù)庫上下文類)放入其中(個(gè)人習(xí)慣!)
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; }
}
}五、將數(shù)據(jù)庫上下文服務(wù)注冊到容器
Program.cs
using Microsoft.EntityFrameworkCore;
using OracleConnectTest.Data;
var builder = WebApplication.CreateBuilder(args);
//依賴項(xiàng)注入
builder.Services.AddDbContext<OracleConnectTestContext>(options =>
options.UseOracle(builder.Configuration.GetConnectionString("oracleConnect")));六、測試數(shù)據(jù)庫數(shù)據(jù)
(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>
}
到此這篇關(guān)于.Net使用EF Core框架如何連接Oracle的文章就介紹到這了,更多相關(guān).Net EF Core連接Oracle內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- .net如何優(yōu)雅的使用EFCore實(shí)例詳解
- ASP.NET?Core?5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析
- .Net Core中使用EFCore生成反向工程
- ASP.NET Core使用EF保存數(shù)據(jù)、級聯(lián)刪除和事務(wù)使用
- ASP.NET?Core使用EF查詢數(shù)據(jù)
- ASP.NET?Core使用EF創(chuàng)建模型(索引、備用鍵、繼承、支持字段)
- ASP.NET?Core使用EF?SQLite對數(shù)據(jù)庫增刪改查
- .net core實(shí)用技巧——將EF Core生成的SQL語句顯示在控制臺中
- 詳解.Net Core 權(quán)限驗(yàn)證與授權(quán)(AuthorizeFilter、ActionFilterAttribute)
- 在.NET Core類庫中使用EF Core遷移數(shù)據(jù)庫到SQL Server的方法
- .net連接oracle的3種實(shí)現(xiàn)方法
- C#利用ODP.net連接Oracle數(shù)據(jù)庫的操作方法
相關(guān)文章
Visual?Studio2022創(chuàng)建WebAPI項(xiàng)目步驟記錄
不管是前后端分離還是提供數(shù)據(jù)服務(wù),WebApi使用的越來越廣泛,而且.NET Core也是我們.NET開發(fā)人員未來發(fā)展的趨勢,所以說學(xué)會使用.NET Core Api是非常有必要的,這篇文章主要給大家介紹了關(guān)于Visual?Studio2022創(chuàng)建WebAPI項(xiàng)目步驟的相關(guān)資料,需要的朋友可以參考下2024-01-01
.NET Core 基于Websocket的在線聊天室實(shí)現(xiàn)
這篇文章主要介紹了.NET Core 基于Websocket的在線聊天室實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
C#實(shí)現(xiàn)HTTP協(xié)議迷你服務(wù)器(兩種方法)
用C#語言實(shí)現(xiàn)HTTP協(xié)議的服務(wù)器類本文將以兩種稍微有差別的方式用C#語言實(shí)現(xiàn);要完成高性能的Web服務(wù)功能,通常都是需要寫入到服務(wù),如IIS,Apache Tomcat感興趣的朋友可以了解下,或許對你學(xué)習(xí)c#有所幫助2013-02-02
aspx超強(qiáng)木馬查殺與防范(web網(wǎng)馬)
下面代碼是一個(gè)aspx超強(qiáng)木馬,功能很多,大家在服務(wù)器上見到一定要小心2013-12-12
ADO.Net對oracle數(shù)據(jù)庫操作的實(shí)例代碼
ADO.Net對oracle數(shù)據(jù)庫操作的實(shí)例代碼,需要的朋友可以參考一下2013-06-06
.NET使用Hisql實(shí)現(xiàn)菜單管理(增刪改查)
這篇文章介紹了.NET使用Hisql實(shí)現(xiàn)菜單管理(增刪改查)的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
jQuery+Ajax用戶登錄功能的實(shí)現(xiàn)
前幾天把jbox源碼修改成仿QQ空間模擬窗口后發(fā)現(xiàn)有很多人在關(guān)注。今天就貼一下我利用該模擬窗口實(shí)現(xiàn)的用戶登錄功能的代碼。2009-11-11

