2

EF 6.1.3 で NCache 4.6 を使用すると、NCache API を使用できません。

内部でクエリポリシーを使用する場合に機能しますが、メソッドefcaching.ncconfのみを使用すると、キャッシュには影響しません。api-level-caching.Cache()

私が取った手順:

Alachisoft.Integrations.EntityFramework.CachingProviderプロジェクトへの参照を追加しました。

追加されたインターセプター:

<interceptors>
    <interceptor type="Alachisoft.NCache.Integrations.EntityFramework.Caching.EFCommandInterceptor, Alachisoft.Integrations.EntityFramework.CachingProvider" />
</interceptors>

Alachisoft.NCache.Integrations.EntityFramework.Caching名前空間をファイルに追加しました。

そして最後に、EntityDataModelサンプルを使用して、たとえば に変更PrintCustomerList(customerQuery);しましたPrintCustomerList(customerQuery.Cache());が、結果はキャッシュされません。

更新 1:

で確認するとdumpcachekeys.exe、実際にはクエリ用のキャッシュが作成されていますが、それでも結果のためにデータベースに移動します。

更新 2:

現金データをダンプしようとするとdumpcachedata.exe、次のエラーで失敗します:

Items in cache      : 3

Error: Failed to resolve assembly: EntityFrameworkDynamicProxies-EntityDataModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
System.Exception: Failed to resolve assembly: EntityFrameworkDynamicProxies-EntityDataModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null          
    at Alachisoft.NCache.Tools.DumpCacheData.DumpCacheData.MakeBackup(Cache cache, String path)
    at Alachisoft.NCache.Tools.DumpCacheData.DumpCacheData.Run(String[] args)

更新 3

サンプルのエンティティ フレームワークで動的プロキシを無効にすると、でEntityDataModelスローされたエラーが解決されdumpcachedata.exe、キャッシュ データが正常にダンプされるようになりました。ただし、キャッシュされたクエリはデータベーストリップを引き起こします。

4

0 に答える 0