Pracuję w podobnej sytuacji, w której chcę tylko buforować określone elementy i chcę, aby te elementy były ładowane jeden raz podczas uruchamiania i przechowywane w pamięci podręcznej, dopóki aplikacja nie zostanie zamknięta. Jest to pamięć podręczna tylko do odczytu i służy do zapełniania listy krajów, dzięki czemu użytkownik może wybrać swój kraj z listy.
użyłem FluentNhibernate mapowań, i określono kraj moją klasę z Cache.readonly()
public class CountryMap : ClassMap<Country> {
public CountryMap() {
Schema("Dropdowns");
Cache.ReadOnly();
// Class mappings underneath
}
}
Moja klasa użytkownik mapa wygląda następująco:
public class UserMap : ClassMap<User> {
Id(x => x.Id).Column("UserId");
Map(x => x.FirstName);
Map(x => x.LastName);
References(x => x.Country)
.Column("CountryId");
}
ja ręcznie skonfigurować Fluent NHibernate używać drugie poziom pamięci podręcznej. Więc w moim płynną Confuguration mam:
var sessionFactory = Fluently.Configure()
.Database (...) // set up db here
.Mappings(...) //set up mapping here
.ExposeConfiguration(c => {
// People advice not to use NHibernate.Cache.HashtableCacheProvider for production
c.SetProperty("cache.provider_class", "NHibernate.Cache.HashtableCacheProvider");
c.SetProperty("cache.use_second_level_cache", "true");
c.SetProperty("cache.use_query_cache", "true");
})
.BuildSessionFactory();
Sprawdziłem w SQL Profiler, a kiedy uzyskać listę otoczony przez użytkownika, są ładowane raz i mam cache uderza po każdy inny wniosek. Fajną rzeczą jest to, że wyświetlając nazwę kraju użytkownika, ładuje się z pamięci podręcznej i nie wysyła żądania do bazy danych. Dostałem kilka wskazówek z tego posta pod numerem Gabriel Schenker. Nadzieja, która pomaga? Jeśli znalazłeś lepszy/właściwy sposób, proszę dać mi znać? Dzięki!
Dobra odpowiedź! Zrobiłem też to, co zrobiłeś. Preferuję NhProf Ayende do profilowania, o wiele lepiej niż profilera SQL, ale nie jest on darmowy (istnieje próba) i jest specyficzny dla NHibernate. –
Yip, widziałem kilka ekranów NHProf, wygląda dobrze. Może spróbujemy zanim zaczniemy żyć. –
Teraz używam nhprof! to jest świetna pomoc! –