はじめに
Npgsqlを使う最も良い方法は、nugetパッケージをインストールすることです。
Npgsqlは、完全なADO.NET互換を目指しています。そのAPIは、他の.NETデータベース・ドライバと、ほとんど同じであると感じるはずです。ここに、あなたが、開始するための基本的なコード・スニペットがあります。
var connString = "Host=myserver;Username=mylogin;Password=mypass;Database=mydatabase";
using (var conn = new NpgsqlConnection(connString))
{
conn.Open();
// Insert some data
using (var cmd = new NpgsqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = "INSERT INTO data (some_field) VALUES (@p)";
cmd.Parameters.AddWithValue("p", "Hello world");
cmd.ExecuteNonQuery();
}
// Retrieve all rows
using (var cmd = new NpgsqlCommand("SELECT some_field FROM data", conn))
using (var reader = cmd.ExecuteReader())
while (reader.Read())
Console.WriteLine(reader.GetString(0));
}
ADO.NET APIの詳細については、MSDNのドキュメントやインターネット上の多数のチュートリアルを参照してください。
DbProviderFactory
上記の例には、Npgsql固有のあなたのアプリケーションを作成するいくつかのNpgsql固有の型(NpgsqlConnection、NpgsqlCommand...)が、含まれています。あなたのコードが、データベースに移植可能である必要がある場合、あなたは、代わりに、ADO.NET DbProviderFactory APIを使用してください。(このチュートリアルを参照)。一言で言えば、あなたは、あなたのアプリケーションのApp.config(やmachines.config)ファイル内で、Npgsqlのプロバイダ・ファクトリーを登録します。そして、その次に、Npgsql固有の型を参照せずに、コード内で、それを取得してください。あなたは、続いて、ファクトリを使用して、(NpgsqlConnectionを拡張する)DbConnection作成し、そこからDbCommandからなどを作成できます。
これを行うには、App.configに次の行を追加します。:
<system.data>
<DbProviderFactories>
<add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"/>
</DbProviderFactories>
</system.data>
GACのインストール
GAC Installation
いくつかの場合では、あなたは、グローバル・アセンブリ・キャッシュ(GAC)に、Npgsqlをインストールする必要があります。これは、通常の場合です。あなたが、一般的なデータベース・プログラムを使用しているとき、それは、どんなADO.NETプロバイダでも、作業することができますが、Npgsqlに付属していないか、直接参照してください。これらの場合、あなたは、私たちのGithubのリリース・ページから、Npgsql Windowsインストーラをダウンロードすることができます。:それは、あなたのGACに、Npgsql(そして、必要に応じて、Entity Frameworkプロバイダ)をインストールします。そして、あなたのmachine.configファイルに、NpgsqlのDbProviderFactoryを追加します。これは、Npgsqlを使用する、一般的な推奨された方法ではありません。-可能であれば、常に、Nugetを経由してインストールしてください。Npgsql.dllに加えて、GACに、System.Threading.Tasks.Extensions.dllもインストールされます。
Visual Studioの統合
Visual Studio Integration
あなたが、Visual Studioの設計時のサポートを持ちたいと思う場合、私たちのVSIX拡張を試してみてください。
不安定なパッケージ
Unstable Packages
Npgsqlビルド・サーバは、ビルドごとに、CI nugetパッケージを公開します。あなたに影響を与えるバグが、修正されたものの、まだ、パッチ・リリースがない場合、あなたは、私たちの安定したMyGetフィードで、CI nugetを取得することができます。これらのパッケージは、通常、安定しており安全に使用できます。(ただし、リリースを待つほうがいいでしょう)。
また、私たちは、私たちの不安定なMyGetフィードで、次のマイナー/メジャー・バージョンのCIパッケージも公開しています。これらは間違いなく不安定であり、注意して使用する必要があります。