[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.

Trzeba utworzyć plik XML, który będzie zawierał kod SQL, który wykona się przy tworzeniu bazy danych. Kod SQL do tworzenia znajduje się w znaczniku <create> a kod służący do ustwania danego obiektu bazodanowego znajduje się w znaczniku <drop>.

Ten plik nazywam Views.hbm.xml i będę trzymał w katalogu Mapping.

Ale Paweł ja korzystam z FluentHibernate, a to jest XML!  Jak to ze sobą pożenić? Spokojnie. Już wyjaśniam.

Tam, gdzie definiujemy, że mamy utworzyć bazę na podstawie schemy możemy dołączyć kod XML.

Plik Views.hbm.xml został w kompilowany w DLL-ke (Solution Explorer -> Zaznaczenie pliku -> Okno Properties -> Build action -> Embedded Resource). Jest wyciągany jako tekst dzięki sprytnemu małemu kodowi od Macieja Aniserowicza.

Źródła