.NET CoreからEntity Framework Coreを経由してOracle Autonomous Databaseへ接続
概要
.net からOracle Autonomous Databaseへ接続してみました。
(Oracle Autonomous Databaseには、Autonomous Data Warehouse(ADW)とAutonomous Transaction Processing(ATP)の二種類がありますが、接続方法は同じです。)
1 準備
1.1 Autonomous Transaction Processingデータベース作成
1.2 クライアントの資格証明(ウォレット)のダウンロード
ウォレットファイルを保存します。
1.3 テスト用テーブルの作成
1.3.1 テーブルBlogsの作成(列BlogIdとUrlが存在します)
2 接続テスト
2.1 Visual Studio 起動、プロジェクトAtptest1の作成 (.netCore console application)
2.2 NugetからOracle.EntityFrameworkCore最新版をインストール
2.3 ウォレットファイル解凍
上記1.2 でダウンロードしたウォレットファイルをAtptest1のbinフォルダーに解凍します。
※任意のフォルダーに解凍して問題ありませんが、下記を注意する必要があります。
- tnsnames.oraとsqlnet.oraはexeと同じフォルダーに保存する必要がある ##2.4 sqlnet.ora編集 上記2.3で解凍されたファイルの中のsqlnet.oraを環境にあわせてDIRECTORY部分を修正します。(相対パス、絶対パスどちらでも問題ありません)
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="./")))
SSL_SERVER_DN_MATCH=yes
2.5 簡単なコードでOracle ATP接続動作確認
2.5.1 サンプルコード
using System;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace Atptest1
{
class Program
{
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseOracle(@"User Id=ADMIN;Password=Welcome!123456;Data Source=db201912241112_medium");
// User Id=<your username>
// 例 User Id=ADMIN
// Password=<your password>
// 例 Password=Welcome!123456
// Data Source=<your servicename>
// 例 your servicename=db201912241112_medium
}
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
}
static void Main(string[] args)
{
using (var db = new BloggingContext())
{
var blog = new Blog { Url = "https://blogs.oracle.com" };
db.Blogs.Add(blog);
db.SaveChanges();
}
using (var db = new BloggingContext())
{
var blogs = db.Blogs;
}
}
}
}
※「コード中の接続文字列(ID、パスワード、データソース)は、環境に合わせて変更してください。」
→サービス名については、下記のマニュアルをご参照ください。
https://docs.oracle.com/cd/E83857_01/paas/atp-cloud/atpug/connect-predefined.html
2.5.2 実行結果
Author And Source
この問題について(.NET CoreからEntity Framework Coreを経由してOracle Autonomous Databaseへ接続), 我々は、より多くの情報をここで見つけました https://qiita.com/shtfresh/items/113bf7f48e7946ed01bf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .