Npgsql 官方NET入门(一)【开始】

来源:互联网 发布:淘宝vr眼镜宣传视频 编辑:程序博客网 时间:2024/05/16 04:36

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的更多信息。

DbProviderFactory

上面的例子涉及一些Npgsql特定的类型(NpgsqlConnectionNpgsqlCommand …),这使您的应用程序具有特定的Npgsql。 如果您的代码需要数据库可移植,则应该使用ADO.NET DbProviderFactory API。 简而言之,您在应用程序的App.config(或machines.config)文件中注册Npgsql的提供者工厂,然后在代码中获取它,而不引用任何Npgsql特定类型。 然后,您可以使用工厂来创建一个DbConnectionNpgsqlConnection扩展),还有一个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安装

在某些情况下,您需要将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