ADO.NET データプロバイダー経由でのアクセス¶
ADO.Net データプロバイダーは、使用するデータベースに依存しないアプリケーションを開発するためのソフトウェアコンポーネントです。
Virtual DataPort には次の各製品との互換性があります。
.Net Data Provider for PostgreSQL バージョン 2.0.12、2.2.0、2.2.3、2.2.7、3.2.7、4.1.14、5.0.18、6.0.11、7.0.7、および 8.0.3 (いずれも 該当のリポジトリ からダウンロードできます)。
.Net Entity Framework Core オブジェクトデータベースマッパー バージョン 6.0.29、7.0.18、および 8.0.4。
.Net の拡張機能である EF Core Power Tools バージョン 2.6.140。
アプリケーションから、以下のことができます。
NpgsqlConnection
クラスの新しいオブジェクトを作成し、コネクション文字列をコンストラクターに渡します。これは、<DENODO_HOME>/samples/vdp/vdp-clients-ADO.NET/Program.cs
の例の処理と同じです。ADO.Net プロバイダーをグローバルの
machine.config
ファイルまたはアプリケーションの.config
ファイルに定義し、アプリケーションから Npgsql ファクトリへのコネクションをリクエストして適切なコネクション文字列を設定します。このオプションにより、使用しているデータベースに依存しないコードを記述できます。
<?xml version="1.0" encoding="iso-8859-1" ?>
<configuration>
<system.data>
<DbProviderFactories>
<add name="Npgsql Data Provider" invariant="Npgsql" support="FF"
description="ADO.Net Data Provider to Denodo"
type="Npgsql.NpgsqlFactory, Npgsql, Version=2.0.12.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />
</DbProviderFactories>
</system.data>
</configuration>
string connectionString = "Server=acme;" +
"Port=9996;" +
"Username=admin;" +
"Password=admin;" + "Database=admin" +
"CommandTimeout=80000";
データベースの名前に非 ASCII 文字が含まれている場合、これらを URL エンコードする必要があります。たとえば、データベースの名前が「テスト」の場合、 Database
プロパティを %E3%83%86%E3%82%B9%E3%83%88
に設定します。
コネクションのデフォルトのクエリタイムアウトは、 CommandTimeout
パラメータで設定されています (時間はミリ秒単位)。このコネクションでは、タイムアウトは 80 秒です。
コネクションのロケールの値は、コネクション文字列の Database
パラメータで設定されます。このプロパティとそのデフォルト値については、「 ODBC ドライバーのパラメータとそのデフォルト値 」を参照してください。
通信を保護するために Virtual DataPort サーバーで SSL/TLS が有効になっている場合、次のパラメータを ConnectionString
に追加します。
"SSL=True;Sslmode=Require"
ConnectionString
のパラメータのリストについては、http://www.npgsql.org/doc/connection-string-parameters.html のページを参照してください。