Использование NCache 4.6 с EF 6.1.3 не может заставить его работать с 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
, и теперь денежные данные успешно сбрасываются. Но все же кешированные запросы вызывают отключение базы данных.