Writing mappings for models in large application is quite boring task. Fortunatelly, Fluent NHibernate provides possibility for automatic mapping creation - so called automappings.
Witam Ostatnio napotkałem na dość ciekawy wyjątek podczas wykonywania NHibernatowego inserta. W bazie danych mam prostą tabelę Do takiej tabeli został stworzony model namespace Model { public class Appointment { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual DateTime StartDate { get; set; } public virtual TimeSpan Duration { get; set; } } } oraz mapping namespace Model.Mappings { public class AppointmentM...
Wczoraj w pracy natknąłem się na, na pierwszy rzut oka, banalny problem, który jak to często bywa po drugim rzucie okazał się trudniejszy niż zakładałem. Ale po kolei...
Bazy danych i XML 4734 dni, 22 godziny, 19 minut temu 143 źrodło rozwiń
Od pewnego czasu zamiast stosowania mapowań za pomocą plików XML zacząłem używać FluentNHibernate. Mimo początkowego sceptycznego podejścia przełamałem się, a dobitnie nastąpiło to wtedy, kiedy zacząłem używać konwencji. Jedną z fajniejszych, która odrazu spowodowała pozytywne nastawienie do FNH jest konwencja IIdConvention. Pozwala na zautomatyzowanie mapowania klucza głównego. Dlaczego? Od zawsze stosuję klucze pojedyncze oparte na typie int lub long, gdzie wartość jest wyliczana algorytmem hilo. Otóż ...
Architektura 4996 dni, 14 godzin, 8 minut temu 112 źrodło rozwiń
Celem mojego pierwszego wpisu dotyczącego NHibernate było krótkie wprowadzenie w świat tego ORM’a. Dziś przyszedł czas na trochę praktyki. Zaczniemy od prostej konfiguracji aplikacji (konsolowej), aby ta mogła połączyć się z bazą danych oraz automatycznie utworzyć w niej przykładową tabelę. Wykorzystamy do tego celu bibliotekę Fluent NHibernate, dzięki której, w przeciwieństwie do standardowej konfiguracji wykorzystującej pliki XML znanej z oryginalnego Hibernate’a, skonfigurujemy wszystko z poziomu kodu...
Bazy danych i XML 5054 dni, 10 godzin, 12 minut temu 176 źrodło rozwiń
Obiecałem sobie nie pisać przez jakiś czas o (Fluent) NHibernate ale jak widać nie potrafię =) Przy okazji refactoringu kodu przypomniałem sobie o pewnym drobny problemie, który napotkałem testując kod repozytoriów. Podczas przeprowadzania testów z wykorzystanie SQLite zauważyłem, że właściwości typu enum zapisywane są w bazie danych pod postacią ciągu znaków, a nie jak oczekiwałoby się pod postacią typu całkowitego (najczęściej i najprawdopodobniej pod postacią integera =)....
O FluentNHibernate napisano już całkiem sporo, jednak niestety duża część z informacji krążących po Sieci jest już nieaktualna z powodu zmian w API. Postanowiłem więc podzielić się z Wami wnioskami z moich wczorajszych zmagań z FNH. Zanim jednak przejdę do konkretów, jeśli ktoś nigdy nie używał tej biblioteki, prawdopodobnie powinien zacząć o tychpostów Procenta.Enumy Jak Procent zauważył, mapowanie enumów za pomocą właściwego im typu całkowitoliczbowego real...
Może czasem się zdarzyć, że chcemy użyć NHibernate, jednak aplikacja korzysta z jakiegoś frameworka, który ma już swoją definicję połączenia z bazą danych. Po co więc w NHibernate ponownie konfigurować to samo połączenie, skoro można wykorzystać już istniejące.
Tworząc standardowe mapowania NHibernate za pomocą plików XML trzeba pamiętać o kilku rzeczach, które bardzo łatwo przeoczyć. Po ich przeoczeniu program nie działa i wywala błędy, a ich treść nie zawsze nakierowuje na przyczynę. Najlepszym tego przykładem jest chyba konieczność oznaczania plików mapowań jako "embedded resource". Fluent NHibernate znacznie upraszcza sprawę, ale i przy nim trzeba uważać. Czasami dostajemy wyjątek niekoniecznie mówiący prosto z mostu o co chodzi. Jak ciężarna 15-latka, któ...
Bazy danych i XML 5469 dni, 4 godziny temu 123 źrodło rozwiń