データの自動キャッシュ
クエリごとにキャッシュを再構築したくない場合は、データを自動的にキャッシュすると便利です。初めてデータをクエリすると、本製品 はバックグラウンドで自動的にキャッシュを初期化して構築します。AutoCache = true の場合、本製品 は後続のクエリ実行にキャッシュを使用するため、応答時間が短縮されます。
自動キャッシュの設定
Accounts テーブルのキャッシュ
次の例は、接続文字列のCacheLocation プロパティで指定されたファイルのAccounts テーブルをキャッシュします。
C#
String connectionString = "Cache Location=C:\\cache.db;AutoCache=true;InitiateOAuth=GETANDREFRESH;OrganizationUrl=https://api.businesscentral.dynamics.com/v1.0/api/v1.0"; using (D365BusinessCentralConnection connection = new D365BusinessCentralConnection(connectionString)) { D365BusinessCentralCommand cmd = new D365BusinessCentralCommand("SELECT accountid, Name FROM Accounts WHERE Name <> 'MyAccount'", connection); D365BusinessCentralDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine("Read and cached the row with AccountId " + rdr["AccountId"]); } }
VB.NET
Dim connectionString As [String] = "Cache Location=C:\\cache.db;AutoCache=true;InitiateOAuth=GETANDREFRESH;OrganizationUrl=https://api.businesscentral.dynamics.com/v1.0/api/v1.0" Using connection As New D365BusinessCentralConnection(connectionString) Dim cmd As New D365BusinessCentralCommand("SELECT accountid, Name FROM Accounts WHERE Name <> 'MyAccount'", connection) Dim rdr As D365BusinessCentralDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine("Read and cached the row with AccountId " + rdr("AccountId")) End While End Using
一般的なユースケース
データを自動的にキャッシュする一般的な用途は、レポートの作成やビジュアライゼーションの作成など、ライブデータソースに繰り返し要求を行うときのドライバーのパフォーマンスを向上させることです。自動キャッシュが有効になっていると、同じデータに対する繰り返しの要求は短期間で実行されますが、"ライブ"データと見なされる許容範囲内(CacheTolerance)になります。