Entity Framework は、Microsoft による .NET 用の人気のあるオブジェクト リレーショナル マッピング フレームワークです。これにより、ドメイン オブジェクトを通じてリレーショナル データを操作できるようになります。また、これにより、作成する必要があるデータベース永続化コードのほとんどが不要になります。
Entity Framework は人気があるため、パフォーマンスとスケーラビリティが重要な高トランザクション アプリケーションで頻繁に使用されるようになりました。ただし、トランザクション量が多いケースのほとんどでは、データベースがすぐにボトルネックになります。これは、拡張の必要に応じてアプリケーション サーバーを追加できるアプリケーション層とは異なり、データベース層では同じことができないためです。
このスケーラビリティを実現する唯一の方法は、次のような分散キャッシュを使用することです。 NCache. NCache は、.NET アプリケーション用の非常に高速でスケーラブルな分散キャッシュです。これにより、アプリケーション データをキャッシュし、高価なデータベース トリップを削減し、アプリケーションのパフォーマンスとスケーラビリティを向上させることができます。
Entity Framework はセカンド レベル (2nd Level) キャッシュ プロバイダー モデルを提供しませんが、 NCache Entity Framework 用のカスタム ADO.NET プロバイダーを実装しました。 NCache Entity Framework クエリの結果をプラグインしてキャッシュできます。これにより、コードを変更せずに Entity Framework アプリケーションで分散キャッシュの使用を開始できるようになります。
ドキュメントを見るEntity Frameworkアプリケーションがマルチサーバー環境で実行されている場合は、EntityFrameworkの第XNUMXレベルのキャッシュとして分散キャッシュが必要です。 と、 NCache はマルチサーバー構成に理想的なEntityFrameworkの第XNUMXレベルのキャッシュであり、次の理由で使用する必要があります。
使用についての最もよい事 NCache Entity Frameworkの場合、プログラミングは必要ありません。 アプリケーションの構成ファイルを変更して、 NCache 第XNUMXレベルのキャッシュプロバイダーとして。 app.configの変更の例を次に示します。
<interceptors>
<interceptor type="Alachisoft.NCache.Integrations.EntityFramework.Caching.EFCommandInterceptor,
Alachisoft.Integrations.EntityFramework.CachingProvider" />
</interceptors>
Since NCache Entity Frameworkの第XNUMXレベルのキャッシュプロバイダーは、カスタムADO.NETプロバイダーとしてプラグインされ、アプリケーションがEntityFrameworkに発行しているさまざまなクエリをすべてログに記録する分析モードで実行できます。 これらのクエリは、この分析モード中にこのクエリが呼び出された回数とともにファイルに記録されます。 以下に例を示します。
<analysis-report>
<!--Call-count = 21-->
<query query-text="" ["SELECT FROM Products"] |
[stored-procedure-name = ""]
caching = "true"
expiration-type="absolute" |
sliding = ""
expiration-time="180"
dbsyncdependency = "true"/>
</analysis-report>
これにより、キャッシュするクエリとその期間を決定できます。 一部またはすべてのクエリに対してデータベース同期を指定することもできます。
プラグを差し込むことによって NCache app.configの変更を通じてEntityFrameworkの第XNUMXレベルのキャッシュプロバイダーを使用すると、アプリケーションのエンタープライズレベルの分散キャッシュを取得できます。 ここにいくつかの機能があります NCache EntityFrameworkアプリを提供します。
ただし、 NCache Entity Framework の第 2 レベル キャッシュは非常に迅速かつ簡単であるため、限られたセットのみを提供します。 NCache 特徴。その理由は、 NCache カスタム ADO.NET プロバイダーとしてプラグインされており、SQL クエリ レベルで処理する必要があるという事実に拘束されます。たくさんあります NCache 使用することにした場合に使用できない機能 NCache Entity Framework の第 2 レベルのキャッシュ プロバイダーとして。
あなたのための代替手段は使用することです NCache Entity Framework アプリケーション内から直接作成することで、 NCache 他のすべての非 Entity Framework .NET アプリケーションと同様の API 呼び出し。この方法を採用するには多少のプログラミング作業が必要になりますが、追加のプログラミング作業を上回る利点があると判断する場合もあります。
以下は、Entity Frameworkの第XNUMXレベルのキャッシュとして使用した場合と、使用した場合に見落とす可能性のある機能のリストです。 NCache アプリケーションから直接。