膨張空間

開発日記を中心に、時々雑記を投稿します。よろしく

.NetCore3.1とDapperでOracleに接続する

未だに.NetFrameWorkを使用することが多く、.NetCoreでOracleに接続をしたことがなかった。 調べてみると以外と自分の環境とバッチリあっている記事が見当たらなかったので、自分用にサンプルを作成した。

ここにサンプルを配置した。

この記事で確認できること

.NetCore3.1でDapperを使用してOracleに接続できる

環境

C# Visualstudio2019 Comunity .NetCore 3.1 Dapper(軽量ORM:SQLは自分で書く。Modelのマッピングはして欲しいくらいの人が使いやすい)

ソース

ConnectionString は各環境に合わせて変更してください。 特別なことはしてしないので見てもらえばすぐに理解できるかと思う。 引数のParamをT(ジェネリック)で宣言してるが、DynamicParameterで宣言しても問題ない。 シンプルな環境であればClassをそのまま使った方がお手軽に使うことができる。

    public class DbClient
    {
        //接続情報保持用
        private DbConnection Connection { get; } = new Oracle.ManagedDataAccess.Client.OracleConnection();

        //コンストラクタ
        public DbClient()
        {
            //ここで接続情報を設定する
            Connection.ConnectionString = @"Data Source = (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.1)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=hoge))) ; User ID = foo; Password = tiger;";
            //接続開始
            Connection.Open();
        }

       //Select
        public IEnumerable<T> Select<T>(string sql, T param)
        {
            return Connection.Query<T>(sql, param);
        }

        //Update、Delete
        public void Update<T>(string sql, T param)
        {
            using (var trun = Connection.BeginTransaction())
            {
                Connection.Execute(sql, param);

                trun.Commit();
            }
        }
    }