Home > C# > PostgreSQL > Npgsqlドキュメント(2014年7月25日・13改訂版)

ConnectionPool上の注意事項・ProviderFactoryと一緒にNpgsqlを使用する

作成日 2015.03.06
最終更新日 2015.03.06

概要

PostgreSQLデータベース・サーバのための、.NET データ・プロバイダNpgsqlのドキュメント(2014年7月25日・13改訂版)の和訳です。 旧版ドキュメント(外部サイト) の和訳は存在しましたが、現行版のドキュメントのものは見つからなかったので和訳しました。 PostgreSQLとC#の両方を学ぶための資料集めの一環としての作成しています。

原文

npgsqlマニュアル(2014年7月25日・13改訂版)(外部サイト)

公式ページのドキュメントです。英語で書かれています。

ConnectionPool上の注意事項

ConnectionPool considerations

Npgsqlは、その接続に関するどんな問題でも見つける時はいつでも、プールから、すべて接続をクリアするでしょう。 これは、発生するどんな不安定問題からも、簡単な回復ができます。 この戦略は、最も良い性能に影響を持つ可能性がありませんが、問題が起こるとき、それは、プールの残りが一貫したままであることを確実にするでしょう。 2つのメソッドはプールをクリアするNpgsqlConnectionを通して利用できます。: ClearPoolとClearAllPools。あなたは、手動でプールをクリアするために、それらを使用することができます。

ProviderFactoryと一緒にNpgsqlを使用する

Using Npgsql with ProviderFactory

Npgsqlは、Provider Factoryパターンで使用することができます。 それは、あなたが、コードを記述することができます。それは、あなたが使用しているデータベースに依存しません。

これを行うために、あなたは、次に示す構成を使用する必要があります。:


<?xml version="1.0" encoding="iso-8859-1" ?>

<configuration>
  <system.data>
    <DbProviderFactories>
      <add name="Npgsql Data Provider" invariant="Npgsql" support="FF" 
      description=".Net Framework Data Provider for Postgresql Server" 
      type="Npgsql.NpgsqlFactory, Npgsql, Version=2.0.1.0, 
      Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />
    </DbProviderFactories>
  </system.data>
</configuration>
			

この構成は、グローバルmachine.configファイルの内部やアプリケーション内の特定の.configファイルに配置することができます。

その後、あなたは、次に示すようなコードを記述することができます:


using System;
using System.Data;
using System.Data.Common;

public class c
{
    public static void Main(String[] args)
    {
       DbProviderFactory factory = DbProviderFactories.GetFactory("Npgsql");       
       DbConnection conn = factory.CreateConnection();
       conn.ConnectionString = "Server=127.0.0.1;User id=npgsql_tests;password=npgsql_tests;";
       conn.Open();
       conn.Close();
    }
}
			
このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」