Свободное кеширование NHibernate для запросов Linq - PullRequest
0 голосов
/ 11 октября 2010

Я только что обнаружил, что я не думаю, что моя установка nhibernate, кажется, кэшируется должным образом.Я использую профилировщик SQL-сервера, и кэш 1-го или 2-го уровня не работает.

Для своих запросов я использую:

var queryable = NHibernateSession.CurrentFor(NHibernateSession.DefaultFactoryKey).Linq<Accommodation>();
queryable.QueryOptions.SetCachable(true);

Я также пытался установитьэто в одном из сопоставлений сущностей:

Cache.Is(c => c.ReadOnly());

Есть ли что-то еще, что я должен делать?

1 Ответ

1 голос
/ 14 октября 2010

Один человек полагает, что кэш 2-го уровня не работает с запросами linq, если есть оператор select. Я не знаю, это ошибка или нет.

проблема с кешем nhibernate с запросами linq

Еще одна вещь, которую стоит проверить, - это использование явных транзакций:

http://www.markhneedham.com/blog/2010/06/16/fluent-nhibernate-and-the-2nd-level-cache/

Вероятно, разумнее дождаться NH 3.0 и более новой, лучшей интеграции linq.

...