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
、キャッシュ データが正常にダンプされるようになりました。ただし、キャッシュされたクエリはデータベーストリップを引き起こします。