Kamil Kliczbor @ asptip.net

29Sep/130

Strategie pozyskiwania encji w NHibernate

NhLogoWhite64_med

Wprowadzenie

Istnieje wiele sposobów, na podstawie których NHibernate uzyskuje dostęp do powiązanych encji lub kolekcji encji. Prawidłowe zarządzanie strategiami wczytywania powiązanych obiektów umożliwia w wielu przypadkach poprawienie wydajności aplikacji. Deklaracja sposobu dostępu do encji może być podana w metadanych pliku mapowań (*.hbm.xml) lub nadpisana w zapytaniach HQL lub Criteria.

26Sep/130

Humor projektowy – jak zręcznie pisać dokumentację

Ostatnio, jeden z kolegów napisał na projektowym blogu opis nowej implementacji części infrastruktury.
Oto kilka fajnych zdań, które mnie i kolegów z zespołu rozbawiły całkiem nieźle:

Wychodząc naprzeciw Waszym oczekiwaniom wdrożyliśmy właśnie odświeżony i znacznie przebudowany mechanizm (...)
API to udostępnia wiele metod ustawiania warunków dostępności przycisków. M.in. odpowiedniki już znanych i lubianych: (...)
Niektóre z wspomnianych wyżej metod przyjmują nowe i na pierwszy rzut oka zaskakujące parametry – wrócimy do tego tematu później.
Uważny Czytelnik z pewnością zauważył, iż wspominaliśmy o tym, że (...)
Czytelnik na pewno pamięta, iż wspominaliśmy, że (...)
(...) Trudno nie docenić takiej możliwości! (...)
Opisane powyżej cechy sprawiają, iż złożoność (w sensie poziomu skomplikowania) mechanizmu znacząco wzrosła. Może to powodować konfuzje, (...)

Tagged as: No Comments
9Sep/130

NHibernate Session Get vs Load

NhLogoWhite64_med

Wstęp

Wpis ten jest poświęcony sposobom pobierania encji w NHibernate o znanym identyfikatorze. W kontekście pobrania danych pojedynczej encji dostępnymi sposobami są:

  • użycie dowolnego API zapytań z restykcją na identyfikator, np.

user = session.QueryOver<User>()
                    .Where(x => x.Id == user.Id)
                    .SingleOrDefault<User>();
  • metoda Get()

  • metoda Load()

  • odwołanie z innej encji np. var user = employee.User.

W tym wpisie skupimy się na działaniu, podobieństwach oraz różnicach pomiędzy metodą Get() i Load() oraz następstwami ich użycia.