Cześć
Szukałem informacji o prefetch i nic nie znalazłem więc może ktoś mi wytłumaczyć jak to działa? Znalazłem tylko informacje, że dzięki temu można wczytać całą tabelę, czego właśnie potrzebuję. Posiadam dwie klasy abstrakcyjne w których znajdują się zapytania. Wykonują się one bardzo dużo razy, a wystarczy że wykonają się raz jednak to nie w tym problem. Chcę oprócz jednorazowego wykonania, żeby wczytały się one w całości z wykorzystaniem prefetch. Doszedłem na razie do tego co poniżej:

public static void Metoda(Session session, EmployeeProfile profile
{
            if (i == 0)
            {
                 session.Prefetch<EmployeeProfile>();
                 session.Prefetch<EmployeeProfileHierarchy>();
                 i++;
            }
            EmployeeProfileHierarchy[] hierarchies = EmployeeProfileHierarchy.GetByPrincipal(session, profile);

I jeszcze załączam metodę GetByPrincipal:

        public static EmployeeProfileHierarchy[] GetByPrincipal(Session session, EmployeeProfile profile)
        {
            Query query = session.CreateQuery("Select EmployeeProfileHierarchy instances where {Principal} = @profile");
            query.Parameters.Add("@profile", profile);
            EmployeeProfileHierarchy[] hierarchies = (EmployeeProfileHierarchy[])query.ExecuteArray();
            return hierarchies;
        }

Podsumowując, chodzi mi o to aby wykorzystać prefetch do wczytania całych tabel z tabel EmployeeProfileHierarchy i EmployeeProfile których zapytania są w w/w klasach.
Jedyne informacje to Link