Как использовать кэш 2-го уровня с NHibernate.Search - PullRequest
0 голосов
/ 14 февраля 2010

Как использовать кэш 2-го уровня с NHibernate.Search?

Я пытался включить SetCacheable в FullTextQuery, но он не работает.

        var session = Search.CreateFullTextSession(database.Session);

        session.CacheMode = CacheMode.Normal;

        var textQuery = session.CreateFullTextQuery(query, new[] { typeof(Job) });

        textQuery.SetCacheable(true);
        textQuery.SetCacheRegion("Job");

        var jobs = textQuery.List<Job>();

        return jobs;

Для всех других стандартных запросов кеш работает хорошо, но с FullTextQueries это не так, NHibernate.Search все еще поражает мою базу данных.

Обратите внимание, что запросы NHibernate.Search: SELECT ... WHERE EntityId IN (Id1, Id2, Id3, ...)

1 Ответ

2 голосов
/ 21 февраля 2010

Вы уверены, что ваши сущности находятся в кеше 2-го уровня. Обычно вы должны работать и запрашивать транзакции, чтобы кэш 2-го уровня мог что-либо делать.

...