ADO.NET Provider for SAP Ariba Procurement

Build 23.0.8839

メタデータのキャッシュ

このセクションでは、メタデータのキャッシュを有効にする方法とメタデータキャッシュを更新する方法について説明します。

データをクエリできるようになる前に、コネクタは関連するメタデータを取得する必要があります。デフォルトでは、メタデータはメモリにキャッシュされ、接続間で共有されます。しかし、プロセスにまたがって保持したい場合、またはメタデータ要求が高負荷の場合は、解決策はメタデータをディスクにキャッシュすることです。

メタデータキャッシュの有効化

メタデータのキャッシュを有効にするには、CacheMetadata をtrue に設定し、接続文字列の設定方法についてはキャッシュ接続の設定 を参照してください。本製品 は、メタデータが初めて必要になったときにメタデータをキャッシュし、それ以降のリクエストでは、そのメタデータを使用します。

メタデータキャッシュの更新

メタデータはキャッシュされるため、ライブソース上のメタデータに対する変更(カラムや属性の追加や削除など)は、メタデータキャッシュに自動的には反映されません。ライブメタデータを更新するには、キャッシュされたデータをdelete またはdrop する必要があります。

コードからのメタデータキャッシュ

以下のコードを使用して、メタデータキャッシュを構築できます。これは、Entity Framework のデータプロバイダーを使用する場合に特に役立ちます。

C#

String connectionString = "Cache Location=C:\\cache.db;Cache MetaData=True;ANID=AN02000000280;API=PurchaseOrdersBuyerAPI-V1;APIKey=wWVLn7WTAXrIRMAzZ6VnuEj7Ekot5jnU;AuthScheme=OAuthClient;InitiateOAuth=GETANDREFRESH;OAuthClientId=testClient;OAuthClientSecret=testClientSecret;UseSandbox=false;";
using (SAPAribaProcurementConnection conn = new SAPAribaProcurementConnection(connectionString)) {
  conn.Open();
  DataTable table = conn.GetSchema("Tables");
  Console.WriteLine("Total number of tables found: " + table.Rows.Count);

  foreach (DataRow row in databaseSchema.Rows) {
    foreach (DataColumn column in databaseSchema.Columns) {
      Console.WriteLine(row[column]);
    }
  }
  Console.WriteLine();
  Console.WriteLine("All tables cached.");
}

VB.NET

Dim connectionString As String = "Cache Location=C:\\cache.db;Cache MetaData=True;ANID=AN02000000280;API=PurchaseOrdersBuyerAPI-V1;APIKey=wWVLn7WTAXrIRMAzZ6VnuEj7Ekot5jnU;AuthScheme=OAuthClient;InitiateOAuth=GETANDREFRESH;OAuthClientId=testClient;OAuthClientSecret=testClientSecret;UseSandbox=false;"
Using conn As New SAPAribaProcurementConnection(connectionString)
  conn.Open()
  Dim databaseSchema As DataTable = conn.GetSchema("Tables")
  Console.WriteLine("Total number of tables found: " + databaseSchema.Rows.Count.ToString())

  For Each row As DataRow In databaseSchema.Rows
    For Each column As DataColumn In databaseSchema.Columns
      Console.WriteLine(row(column))
    Next
  Next
  Console.WriteLine()
  Console.WriteLine("All tables cached.")
  Console.ReadKey()
End Using

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 23.0.8839