[NHibernate] Tworzenie Obiektów Bazodanowych

[NHibernate] Tworzenie obiektów bazodanowych

Wykorzystujesz NHibernate do utworzenia struktury bazy danych?

Ja tak robię. NHibernate utworzy dla ciebie na podstawie mapowania tabele. Ale gdy chcesz utworzyć coś specjalnego,  obiekt bazodanowy korzystając z zapytania SQL interpretowanego tylko przez określone bazy danych, wtedy z pomocą może przyjść <database-object />.

Na potrzeby tego posta będę tworzył Widok, który ma się dodać przy tworzeniu bazy danych.

Czytaj resztę...
[NHibernate] Automatyczna Aktualizacja Daty I Czasu – O Ostatniej Zmianie W Rekordzie

[NHibernate] Automatyczna aktualizacja daty i czasu – o ostatniej zmianie w rekordzie

Jak pisałem poprzednio o problemie braku milisekund w dacie. Wspomniałem o tym, że tabele posiadają kolumnę informującą o ostatniej zmianie, która nastąpiła na rekordzie. Można się domyślić, że ręczne ustawianie tej wartości było by mozolne oraz podatne na błędy ( w szczególności – zapomnienie o wstawieniu nowej wartości)

Można to zautomatyzować przy użyciu Listnera. „Nasłuchiwacza” na zmiany wysyłane do bazy danych.

Czytaj resztę...
[NHibernate] Integracja Z NLog

[NHibernate] Integracja z NLog

Chcesz logować SQL generowany przez NHibernate do pliku?

Przejdę od razu do konkretów. Potrzeba klasy NLogFactory, która będzie tworzyła instancje Loggera.

[code lang=”csharp”] public class NLogFactory : ILoggerFactory
{
#region ILoggerFactory Members

public IInternalLogger LoggerFor(Type type)
{
return new NLogLogger(LogManager.GetLogger(type.FullName));
}

public IInternalLogger LoggerFor(string keyName)
{
return new NLogLogger(LogManager.GetLogger(keyName));
}

#endregion
}
[/code]

Potrzeba klasę, która jest adapterem dla NLoga – NLogLogger

Czytaj resztę...
[NHibernate] Automatycznie Sprawdź Czy ‚properties’ Są Virtual

[NHibernate] Automatycznie sprawdź czy ‚properties’ są virtual

NHibernate wymaga od programisty, aby wszystkie Properties (właściwości) wewnątrz Enitity (encji / klasy POCO) były oznaczone słowem kluczowym virtual.

Dlaczego? bo…:

The quick answer to that question is: because we need members to be virtual in order to do our lazy loading magic/voodoo. — źródło StackOverflow

A teraz jak zrobić, aby automatycznie sprawdzać czy wszystkie properties spełniają wymagania? Wykorzystać Unit Testy!

Czytaj resztę...