Architect's Log

I'm a Cloud Architect. I'm highly motivated to reduce toils with driving DevOps.

LINQ to SQLでPostgreSQLに接続する

LINQ to SQLでPostgreSQLに接続するサンプルです。「dotConnect for PostgreSQL」と「DbLinq」というライブラリを使用します。

dotConnect for PostgreSQL

「dotConnect for PostgreSQL」についてはこちらを参照してください。
PostgreSQLで型付きデータセットとテーブルアダプターを使用する - プログラマーな日々

プロジェクト作成

コンソールアプリケーションプロジェクトを作成し、上記の両ライブラリを参照設定します。

テーブル

DDL
CREATE TABLE fuga_table (
  fuga_id integer NOT NULL,
  fuga_name character varying(255),
  CONSTRAINT fuga_table_pkey PRIMARY KEY (fuga_id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE fuga_table OWNER TO postgres;
レコード


ソースコード

  • Program.cs
using System;
using System.Data.Linq.Mapping;
using System.Linq;
using DbLinq.PostgreSql;
using Devart.Data.PostgreSql;

namespace ConsoleApplication1 {
    class Program {
        static void Main(string[] args) {
            const string ConnectionString = "...";
            HogeDataContext context = new HogeDataContext(new PgSqlConnection(ConnectionString));

            var fugas = context.GetTable<fuga_table>();
            var q = from fuga in fugas
                    select fuga;

            foreach (fuga_table table in q) {
                Console.WriteLine("{0} {1}", table.fuga_id, table.fuga_name);
	   }
            Console.Read();
        }
    }

    class HogeDataContext : PgsqlDataContext {
        public HogeDataContext(PgSqlConnection c) : base(c) {
        }
    }

    [Table]
    public class fuga_table {
        [Column]
        public int fuga_id;

        [Column]
        public string fuga_name;
    }
}

実行結果