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));
}
您可以在MSDN文档或Internet上的许多教程中找到有关ADO.NET API的更多信息。
上面的例子涉及一些Npgsql特定的类型(NpgsqlConnection
,NpgsqlCommand
…),这使您的应用程序具有特定的Npgsql
。 如果您的代码需要数据库可移植,则应该使用ADO.NET DbProviderFactory
API。 简而言之,您在应用程序的App.config(或machines.config)文件中注册Npgsql的提供者工厂,然后在代码中获取它,而不引用任何Npgsql特定类型。 然后,您可以使用工厂来创建一个DbConnection
(NpgsqlConnection
扩展),还有一个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>
在某些情况下,您需要将Npgsql安装到全局程序集缓存(GAC)中。 通常情况下,您正在使用可与任何ADO.NET提供程序配合使用的通用数据库程序,但不会附带Npgsql或直接引用它。 对于这些情况,您可以下载Npgsql Windows安装程序:它会将Npgsql(以及可选的Entity Framework提供程序)安装到GAC中,并将Npgsql的DbProviderFactory
添加到您的machine.config
文件中。 这不是一般推荐使用Npgsql的方法 - 总是通过Nuget安装,如果可能的话。 除了Npgsql.dll
,这也将安装System.Threading.Tasks.Extensions.dll
到GAC。