英語マニュアル
4.2.2.4 .NET標準2.0
4.2.4.2 モデル優先とデータベース優先の使用
5.8.1 GeoJSON
5.8.2 Json.NET
5.8.5 NodaTime
5.8.6 RawPostGIS
EDB Postgres Advanced Server
.NETコネクタガイド
以下の説明では、 用語は、言語キーワード、ユーザー指定の値、リテラルなどの任意の単語または単語のグループを指します。用語の正確な意味は、それが使用される文脈によって異なります。
•
イタリック体のフォント は、通常は初めて定義する文章の中に新しい用語を導入します。
•
Fixed-width (mono-spaced) font は、 SQL コマンド、例で使用されている特定のテーブル名および列名、プログラミング言語のキーワード など、文字通りに指定する必要がある用語に使用され ます 。例えば、 SELECT * FROM emp;
•
Italic fixed-width font は、ユーザーが実際の使用法で値を置き換える必要がある用語に使用されます。例えば、 DELETE FROM table_name ;
•
角括弧[]は、囲まれた用語の1つまたはすべてを置換できることを示します。たとえば、 [ a | b ] 、「 a 」または「 b 」のいずれかを選択するか、または両方を選択しないことを意味します。
•
中括弧{}は、囲まれた選択肢のうち1つだけを指定する必要があることを示します。たとえば、 { a | b }正確に一つ「の意味a 」又は「 b 」を指定しなければなりません。
•
省略記号...は、前の用語が繰り返される可能性があることを示します。たとえば、 [ a | b ] ...は、シーケンス「 baaba 」があるかもしれないことを意味します。
•
•
EDBConnection クラスには、高度なサーバーへの接続を表します。 EDBConnection オブジェクトが含まれている ConnectionString Advanced Serverのデータベースに接続する方法.NETクライアントに指示します。
EDBCommand オブジェクトは、クライアントは、Advanced Serverに対して実行されるSQLコマンドが含まれています。 EDBCommand オブジェクト を実行する前 に、それを EDBConnection オブジェクトに リンクする必要があり ます。
EDBDataReader オブジェクトは、Advanced Serverの結果セットを読むための方法を提供します。 EDBDataReader オブジェクトを 使用して、 EDBDataReader 1行ずつ順方向に進む ことができます 。
EDBDataAdapter オブジェクトは、Advanced Serverのデータベースに結果セットをリンクします。 Advanced Serverデータベースに格納されているデータを更新 するには、値を変更して EDBDataAdapter クラスを 使用し ます。
Language Selectionポップアップが開いたら、インストール言語を選択し、 OKをクリックしてSetupウィンドウに進みます(図2.1)。
Nextをクリックして続けます。
[ Installation Directory ]ダイアログ(図2.2を参照)を使用してコネクタをインストールするディレクトリを指定し、[ Nextへ]をクリックして続行します。
InstallのReadyダイアログ(図2.3参照)でNextをクリックし to Installを開始します。ポップアップダイアログがインストールウィザードの進行状況を確認します。
セットアップが完了したことがウィザードから通知されたら、[ Finish ]ボタンをクリックしてダイアログをFinishます(図2.4を参照)。
C:¥Users¥susan¥AppData¥Local¥Temp¥vmware-susan¥VMwareDnD¥7412d23f¥スクリーンショット2016-07-11 at 4.50.20 PM.png
StackBuilder Plusが開いたら、画面上の指示に従います。ツリーコントロールの[ Database Driversノードから[ EnterpriseDB .Net Connector ]オプションを選択します(図2.6を参照)。
•
ライブラリファイルの参照すべてのコンポーネントに適用可能な一般構成情報。
•
.NET Framework 4.0。 .NET Framework 4.0で使用するための設定手順
•
.NET Framework 4.5。 .NET Framework 4.5で使用するための設定手順
•
.NET Framework 4.5.1。 .NET Framework 4.5.1で使用するための設定手順
•
.NET Standard 2.0 .NET Standard 2.0で使用するための設定手順
•
エンティティフレームワーク5/6。 Entity Frameworkで使用するための設定手順
•
EnterpriseDB VSIX EnterpriseDB VSIXで使用するための設定手順
1。
Solution Explorer プロジェクトを選択します。
2。
[ Project ]メニューから[ Reference Add ]を選択します。
3。
[ Reference の Add ]ダイアログボックスが開いたら、適切なライブラリファイルを参照して選択します。
。
ライブラリファイルの参照については、 4.2.1 項を参照してください 。
注:プロジェクトに以下の依存関係も追加する必要があります。
ライブラリファイルの参照については、 4.2.1 項を参照してください 。
注:プロジェクトに以下の依存関係も追加する必要があります。
ライブラリファイルの参照については、 4.2.1 項を参照してください 。
4.2.2.4 .NET標準2.0
Note:プロジェクトに以下の依存関係も追加する必要があります。
Note: If your target framework is .Net Core 2.0, then include the following file in your project:
ライブラリファイルについては、 4.2.1 項を参照してください 。
注: Entity Frameworkは、 net45およびnet451サブディレクトリにあるEnterpriseDB.EDBClient.dllと一緒に使用できます。
ライブラリファイルの参照については、 4.2.1 項を参照してください 。
追加 <DbProviderFactories>にEDBのPostgresのADO.NETドライバのエントリをapp.configファイル。以下がエントリです。
プロジェクトの app.configファイルで、EntityFramework / providerタグの下にプロバイダサービス用の次のエントリを追加します。
以下は app.configファイルの例です。
注意:のために同じエントリ<providers>と<DbProviderFactories>有効ですweb.configファイルなどのためapp.config 。
EDBデータデザイナ拡張プロバイダ ( EnterpriseDB VSIX )は、Advanced ServerデータベースへのアクセスをVisual Studioに統合し、Visual Studioの統合機能を提供するコンポーネントです。
EnterpriseDB.vsix
SSDLToPgSQL.tt
手順1:次の場所にあるEnterpriseDB.vsixインストーラを使用して、EnterpriseDB VSIXを目的のバージョンのVisual Studioにインストールします。
グローバルアセンブリキャッシュ(GAC)にEnterpriseDB.EDBClientを配置する必要はなくなりました 。
ステップ2: Visual Studioを再起動して、 Tools > Extensions and Updates ]メニューからEnterpriseDB機能拡張がインストールされていることを確認しTools > Extensions and Updates 。
手順3:次の場所からVisual Studio Developersコマンドラインを使用して、 gacutilユーティリティを使用してグローバルアセンブリキャッシュ(GAC)にSystem.ValueTuple.dllアセンブリを追加します。
ステップ4:サーバーエクスプローラから、 Data Connections右クリックし、 Add Connectionクリックして、 Enterprisedb Postgres Databaseデータソースが利用可能であることを確認します。
4.2.4.2 モデル優先とデータベース優先の使用
ステップ1:追加EntityFramework5.EnterpriseDB.EDBClient.dll持つグローバルアセンブリキャッシュ(GAC)にアセンブリをgacutil Visual Studioの開発者コマンドラインを使用してユーティリティ。
ステップ2: machine.configファイルにEDB PostgresのADO.NETドライバーの<DbProviderFactories>エントリーを追加します。以下がエントリです。
注:属性と値のペアの場合、二重引用符で囲まれた文字列に余分な空白文字を含めることはできませんが、単一行で設定する必要があります。このセクションに示す例は、わかりやすくするために複数の行に分割することができますが、実際には次のように1行に構成する必要があります。
64ビットWindowsの場合、 machine.configファイルは次の場所にあります。
32ビットWindowsの場合、 machine.configファイルは次の場所にあります。
手順3:次の例のように、DDL生成テンプレートSSDLToPgSQL.ttをVisual StudioのEntityFramework Tools\DBGen\フォルダーに配置します。
注: EDMXファイルのプロパティでこのテンプレートSSDLToPgSQL.ttを選択してください。
ステップ4:プロジェクト参照にEnterpriseDB.EDBClient.dllファイルとEntityFramework6.EnterpriseDB.EDBClient.dllファイルを追加します。ライブラリファイルの参照については、 4.2.1項を参照してください。
ステップ5:プロジェクトのapp.configファイルで、EntityFramework / providerタグの下にプロバイダサービスの次のエントリを追加します。
以下は app.configファイルの例です。
サンプルコードと同じディレクトリに 次の web.config ファイルを 作成して保存して web.config 。例では 、この設定ファイルの DB_CONN_STRING キー を使用 して、Advanced Serverホストから接続文字列を返します。
ASP.NET WebアプリケーションのAdvanced Server接続文字列は、 web.configファイルに格納されています。あなたはASP.NETを使用しないアプリケーションを作成する場合は、(のようなアプリケーション構成ファイルに接続情報を提供するapp 。 config )。
EDBConnectionオブジェクトは、Advanced Serverのインスタンスと.NETアプリケーション間の通信を処理する責任があります。 Advanced Serverデータベースに格納されているデータにアクセスする前に、 EDBConnection作成して開く必要があります。
1。
名前空間 EnterpriseDB インポートします 。 EDBClient
2。
3。
接続文字列をEDBConnectionクラスのコンストラクターにパラメーターとして渡すことによって、 EDBConnectionオブジェクトを初期化します。
4。
EDBConnectionオブジェクトのOpenメソッドを呼び出して接続を開きます。
CommandTimeoutは、例外がスローされるまでにコマンドの実行が終了するのを待つ時間(秒単位)を指定します。デフォルト値は20です。
使用 ConnectionLifeTimeプールで使用されていない接続を閉じるまで待機する時間(秒)の長さを指定します。デフォルト値は15です。
Databaseパラメーターを使用して、アプリケーションの接続先となるデータベースの名前を指定します。データベース名が指定されていない場合、データベース名はデフォルトで接続ユーザーの名前になります。
Encodingパラメータは廃止されました。パラメータは常に文字列unicode返し、それを設定しようとする試みを黙って無視します。
デフォルトでは、 Integrated Securityはfalseに設定されfalseおり、Windows統合セキュリティは無効になっています。 Windows統合セキュリティを使用するには、値trueを指定してください。
MaxPoolSizeは、プールが指定された接続数を超えると、プールされた接続をMaxPoolSizeようにEDBConnectionに指示します。デフォルト値は20です。
MinPoolSizeは、指定された数の接続をサーバーと事前に割り当てるようにEDBConnectionに指示します。デフォルト値は1です。
デフォルトでは、接続プーリングを有効にするために Poolingはtrueに設定されていtrue 。接続プーリングを無効にするには、値falseを指定します。
Portパラメータは、アプリケーションが接続するポートを指定します。
SearchPathパラメータを使用して 、検索パスを名前付きスキーマとパブリックスキーマに変更します。
SSL
デフォルトでは、 SSLはfalse設定されていfalse 。セキュア接続を試みるには、 true値を指定してください。
SSL接続制御設定を指定するには、 sslmodeを使用します。 sslmodeは次のいずれかです。
prefer - 可能であればSSLを使用してください。
require - SSL接続が確立できない場合に例外を投げます。
allow - SSLなしで接続します。このパラメータはサポートされていません。
disable - SSL接続を試みません。これがデフォルトの動作です。
使用 SyncNotificationように指定するパラメータをEDBDataprovider 、同期通知を使用する必要があります。デフォルト値はfalseです。
Timeoutは、開いている接続を待機する時間の長さ(秒単位)を指定します。デフォルト値は15です。
User Id
User Idパラメータは、接続のために使用すべきであるユーザー名を指定します。
次の例は、Advanced Serverのインスタンスへの接続を開いてから接続を閉じる方法を示しています。接続は、 DB_CONN_STRING構成パラメータで指定された資格情報を使用して確立されます(接続情報の DB_CONN_STRINGについては第5章の始めを、接続パラメータについては5.1.1項を参照)。
{
}
スクリーンショット2014-06-26 at 8
コンソールアプリケーションのコードを作成する前に、データベースへの接続文字列を格納する app.configファイルを作成してください。設定ファイルを使用すると、情報が変更された場合に接続文字列を更新するのに便利です。
{
}
ファイルを EDBConnection - Sample として保存します 。 csを実行して、次のコマンドでコンパイルします。
サンプルをコンパイルすると、 Console.exeファイルが生成されます。 Console.exeを入力してサンプルコードを実行できます。実行されると、コンソールは以下のことを確認します。
{
}
このコマンドは WinForm を生成し WinForm 。実行ファイルがコンパイルされたのと同じフォルダ内のexeファイル。実行可能ファイルを呼び出すと、次のように表示されます。
ダイアログ
SELECT文を使用して、 SELECTコマンドを介してデータベースからレコードを取得できます 。 SELECT文を実行するには、次のSELECTを実行します。
•
SELECTステートメントを表すEDBCommandオブジェクトを作成します 。
•
してコマンドを実行する ExecuteReader()のメソッドEDBCommand戻りオブジェクトEDBDataReader
•
EDBDataReaderをループして結果を表示するか、 EDBDataReaderを何らかのコントロールにバインドします。
EDBDataReaderオブジェクトは、データベースレコードの前方のみの読み取り専用のストリームを表し、一度に一つのレコードを発表しました。ストリーム内の後続のレコードを表示するには、 EDBDataReaderオブジェクトのRead()メソッドを呼び出す必要があります。
2。
SELECTステートメントを使用してEDBCommandオブジェクトを初期化します。
4。
EDBCommandオブジェクトのExecuteReaderメソッドを呼び出して EDBCommand 実行します。
SQLステートメントの結果は EDBDataReaderオブジェクトに取り出されます。
5。
EDBDataReaderオブジェクトの内容をループ処理して 、 WHILEループ内でクエリによって返されたレコードを表示します。
Read()メソッドは、(レコードが存在する場合)、次のレコードに進み、戻りtrueレコードが存在する場合、またはfalseことを示すためにEDBDataReader結果セットの終わりに達しています。
{
{
http://localhost/selectEmployees.aspx
クエリから単一の結果を取得するには、 EDBCommandオブジェクトのExecuteScalar()メソッドを使用します。 ExecuteScalar()メソッドは、指定されたクエリによって生成されたDataSet最初の行の最初の列の最初の値を返します。
{
{
{
サンプルには、 ExecuteScalar()メソッドによって返された値の明示的な変換が含まれています 。 ExecuteScalar()メソッドはオブジェクトを返します。オブジェクトを表示するには、 Convertを使ってオブジェクトを整数値に変換する必要があります。 ToInt32メソッド
パラメータ化 クエリは、SQL文に埋め込まれた1つ以上のパラメータマーカーを持つクエリです。パラメータ化されたクエリを実行する前に、SQLステートメントのテキスト内にある各マーカーに値を指定する必要があります。
次の例に示すように、 EDBParameterオブジェクトを作成し、そのオブジェクトをコマンドのパラメータコレクションに追加することによって、パラメータ化クエリで指定された各パラメータのデータ型を宣言する必要があります。次に、パラメータのValue()関数を呼び出して、各パラメータに値を指定する必要があります。
{
}
あなたは使用することができる ExecuteNonQuery()のメソッドEDBCommand持つ高度なサーバーのホスト上に格納されたデータベースにレコードを追加するためにInsertコマンド。
次の例では、 insertコマンドは変数cmd格納されています。 (コロンで始まる値は: )のプレースホルダですEDBParameters 、インスタンス化された値が割り当てられ、その後に追加されたinsert続く文で、コマンドのパラメータコレクション。 insertコマンドは、 cmdInsertオブジェクトのExecuteNonQuery()メソッドによって実行されます。
{
{
}
EDBCommand ExecuteNonQuery()メソッドをEDBCommandして、 Delete文を使用してAdvanced Serverホストに格納されているデータベースからレコードを削除できます 。
次の例では、 deleteコマンドは変数strDeleteQuery格納されています。コードは従業員番号をDeleteコマンドに:EmpNoます( :EmpNo指定)。その後、 ExecuteNonQuery()メソッドを使用してコマンドが実行されます。次の例では、前の例で挿入された従業員を削除します。
{
{
{
}
2。
EnterpriseDB.EDBClient名前空間をインポートします。
4。
EDBCommand 変更して EDBCommand 。 CommandTypeからCommandType.StoredProcedure 。
5。
コマンドPrepare()します。
このサンプル手順では、部門 10 の名前を印刷しています。プロシージャはパラメータを取らず、パラメータを戻しません。サンプルプロシージャを作成するには、EDB-PSQLを起動してAdvanced Serverのホストデータベースに接続します。コマンドラインに次のSPLコードを入力します。
IS
EDBCommandオブジェクトの CommandTypeプロパティは、実行されているコマンドの種類を示すために使用されます。 CommandTypeプロパティは、3つの可能なCommandType列挙値のうちの1つに設定されます。
•
実行用のSQL文字列を渡すときは、デフォルトの Text値を使用します 。
•
StoredProcedure値を使用して、実行するストアドプロシージャの名前を渡します。
•
テーブル名を渡すときは TableDirect値を使用してください 。この値は、指定されたテーブル内のすべてのレコードを返します。
CommandTextプロパティは、の値に応じて、SQL文字列、ストアドプロシージャ名、またはテーブル名が含まれている必要がありCommandTypeプロパティ。
{
{
{
次の例は、 INパラメータを含むストアドプロシージャを呼び出す方法を示しています。サンプルプロシージャを作成するには、EDB-PSQLを起動してAdvanced Serverのホストデータベースに接続します。コマンドラインに次のSPLコードを入力します。
(
)
AS
パラメータを含むストアドプロシージャを呼び出すことは、パラメータなしでストアドプロシージャを実行することと非常によく似ています。主な違いは、パラメータ化ストアドプロシージャを呼び出すときに、 EDBCommandオブジェクトのEDBParameterコレクションを使用する必要があることです。場合EDBParameterに追加さEDBCommandコレクション、等の特性ParameterName 、 DbType 、 Direction 、 Size 、およびValue設定されています。
{
{
}
この例では、 Page_Loadメソッドの本体が EDBConnectionオブジェクトを宣言してインスタンス化します。次にサンプルは、ストアドプロシージャの実行に必要なプロパティを使用してEDBCommandオブジェクトを作成します。
次に例では、 6つの入力パラメータを追加するためにEDBCommand ParameterコレクションのAddメソッドを使用します。
EMP_INSERTストアード・プロシージャーに渡す前に、各パラメーターに値を割り当てます。
Prepare()メソッドを呼び出す前に文を準備ExecuteNonQuery()メソッドを。
EDBCommandオブジェクトの ExecuteNonQueryメソッドは、ストアドプロシージャを実行します。ストアドプロシージャの実行後、テストレコードがempテーブルに挿入され、挿入された値がWebページに表示されます。
前の例では、 INパラメータをストアドプロシージャに渡す方法を示しました。次の例は、ストアドプロシージャからIN値を渡してOUT値を返す方法を示しています。
(
)
AS
OUTパラメータから値を取得するときは 、 Outputとしてoutパラメータの方向を明示的に指定する必要があります。 Outputパラメータから値を取得する方法は2つあります。
•
コール ExecuteReaderの方法EDBCommand 、明示的に戻ってループEDBDataReaderの値を探し、 OUTパラメーター。
•
EDBCommand の ExecuteNonQueryメソッドを呼び出し、そのEDBParameter valueプロパティを呼び出すことによって、宣言されたOutputパラメータの値を明示的に取得します。
各メソッドで、パラメータの 方向を示す各パラメータを宣言する必要があります( ParameterDirection.Input 、 ParameterDirection.OutputまたはParameterDirection.InputOutput )。プロシージャを呼び出す前に、各INおよびINOUTパラメータに値を指定する必要があります。プロシージャが戻った後、 command.Parameters[]配列からOUTおよびINOUTパラメータ値を取得できます。
次のコードリストは、 ExecuteReaderメソッドを使用して結果セットを取得する方法を示しています。
{
次のコードリストは、 ExecuteNonQueryメソッドを使用して結果セットを取得する方法を示しています。
{
}
REFカーソルは、クエリ結果セットへのポインタを含むカーソル変数です。結果セットは、カーソル変数を使用したOPEN FORステートメントの実行によって決まります。カーソル変数は、静的カーソルのように特定のクエリに結び付けられていません。異なるクエリを含むOPEN FORステートメントで同じカーソル変数を何度も開くことができ、そのたびにそのクエリに対して新しい結果セットが作成され、カーソル変数を介して使用可能になります。カーソル変数を宣言する方法は2つあります。
•
使用 SYS_REFCURSOR弱い型付けされたREFカーソルを宣言するために、組み込みデータ型を。
SYS_REFCURSORは、任意の結果セットをそれに関連付けることができる参照カーソル型です。これは、弱い型指定の参照カーソルとして知られています。次の例は、弱い型指定のrefカーソルの宣言です。
TYPE cursor_type_name IS REF CURSOR RETURN emp%ROWTYPE;
次のサンプルコードは、 refcur_inout_callee というストアドプロシージャを作成します 。サンプルプロシージャを作成するには、EDB-PSQLを起動してAdvanced Serverのホストデータベースに接続します。コマンドラインに次のSPLコードを入力します。
IS
{
}
{
}
あなたがバインドする必要がありますのでご注意ください EDBDbType.RefCursorタイプをEDBParameter()あなたが参照カーソルパラメータを使用している場合。

•
•
•
5.8.1 GeoJSON
5.8.2 Json.NET
C:\Program Files\edb\dotnet\ plugins\NetTopologySuite\net45
5.8.5 NodaTime
5.8.6 RawPostGIS
•
When using the API, replace references to Npgsql with EnterpriseDB.EDBClient .
•
When referring to classes, replace Npgsql with EDB When referring to classes, replace . For example, use the EDBBinaryExporter class instead of the NpgsqlBinaryExporter class.