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

一定要安裝Oracle.MangedDataAccess,他是Oracle的驅動程序。如果是使EntityFrameworkCore框架操作Oracle,則還需要引入Oracle.EntityFrameWorkCore
二、 配置文件
在appsetting.json文件中寫好數(shù)據(jù)的連接信息,這里我本來使用的是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": "*"
}三、創(chuàng)建實體類
因為Oracle默認的話不管是大寫還是小寫,最后都會轉換成大寫,所以如果實體類的名字如果和表明不一致的話(大寫小寫Oracle是有區(qū)別的),會報錯!
所以使用了[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; }
}
}四、創(chuàng)建數(shù)據(jù)庫上下文類
創(chuàng)建一個Data文件夾,將該類(數(shù)據(jù)庫上下文類)放入其中(個人習慣!)
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ù)庫上下文服務注冊到容器
Program.cs
using Microsoft.EntityFrameworkCore;
using OracleConnectTest.Data;
var builder = WebApplication.CreateBuilder(args);
//依賴項注入
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>
}
到此這篇關于.Net使用EF Core框架如何連接Oracle的文章就介紹到這了,更多相關.Net EF Core連接Oracle內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- .net如何優(yōu)雅的使用EFCore實例詳解
- ASP.NET?Core?5.0中的Host.CreateDefaultBuilder執(zhí)行過程解析
- .Net Core中使用EFCore生成反向工程
- ASP.NET Core使用EF保存數(shù)據(jù)、級聯(lián)刪除和事務使用
- ASP.NET?Core使用EF查詢數(shù)據(jù)
- ASP.NET?Core使用EF創(chuàng)建模型(索引、備用鍵、繼承、支持字段)
- ASP.NET?Core使用EF?SQLite對數(shù)據(jù)庫增刪改查
- .net core實用技巧——將EF Core生成的SQL語句顯示在控制臺中
- 詳解.Net Core 權限驗證與授權(AuthorizeFilter、ActionFilterAttribute)
- 在.NET Core類庫中使用EF Core遷移數(shù)據(jù)庫到SQL Server的方法
- .net連接oracle的3種實現(xiàn)方法
- C#利用ODP.net連接Oracle數(shù)據(jù)庫的操作方法
相關文章
Asp.Net二級域名共享Forms身份驗證、下載站/圖片站的授權訪問控制
我們平時一般在做圖片或者文件下載權限控制的時候基本都是控制到下載頁面的,當你的下載地址暴露后,瀏覽者就直接可以通過文件地址進行下載了,這時候也就出現(xiàn)了我們常說的盜鏈2012-02-02
使用.NET?6開發(fā)TodoList應用之引入數(shù)據(jù)存儲的思路詳解
在這篇文章中,我們僅討論如何實現(xiàn)數(shù)據(jù)存儲基礎設施的引入,具體的實體定義和操作后面專門來說。對.NET?6開發(fā)TodoList引入數(shù)據(jù)存儲相關知識感興趣的朋友一起看看吧2021-12-12
.NET?6新特性試用之TryGetNonEnumeratedCount?方法
這篇文章主要介紹了.NET?6新特性試用TryGetNonEnumeratedCount,這個方法可計算可枚舉類型的元素總數(shù),下面來看看具體的使用方式吧,需要的朋友可以參考一下2022-03-03
asp.net中javascript的引用(直接引入和間接引入)
Asp.net 中引入Javascript的方法有很多,個人認為可以分為直接引入,和間接引入,下面是兩種具體的引用方法,感興趣的朋友可以參考下哈2013-06-06
在ASP.NET Core中實現(xiàn)一個Token base的身份認證實例
以前在web端的身份認證都是基于Cookie | Session的身份認證,本篇文章主要介紹了在ASP.NET Core中實現(xiàn)一個Token base的身份認證實例,有興趣的可以了解一下。2016-12-12
asp.net textbox javascript實現(xiàn)enter與ctrl+enter互換 文本框發(fā)送消息與換行(類似
今天與大家分享一下 asp.net textbox javascript實現(xiàn)enter與ctrl+enter互換 文本框發(fā)送消息與換行(類似于QQ),這個功能到底怎么實現(xiàn)?首先聲明以下幾點2012-01-01
Asp.net FCKEditor 2.6.3 上傳文件沒有權限解決方法
到Fckeditor官方網(wǎng)站下載FredCK.FCKeditorV2.vs2005 (asp.net)2009-02-02

