W Oracle nie ma możliwości przechowywania wartości typu bool. Najbardziej powszechnym rozwiązaniem jest użycie kolumny typu CHAR(1) z wartościami 'Y' i 'N'. Autorzy NHibernate się na to przygotowali udostępniając typ YesNo. Mój przypadek był inny. Z bazy danych korzystała już aplikacja, która wartości typu bool zapisywała w kolumnach typu INT. Wartość true zdefiniowana była jako -1, wartość false - 0. Moja miała robić tak samo. Da radę. Tylko niestety trzeba się trochę napisać.
Bazy danych i XML 5480 dni, 2 godziny, 47 minut temu 62 źrodło rozwiń
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 5499 dni, 10 godzin, 26 minut temu 123 źrodło rozwiń
Jeśli taką klasę: 1: public enum Gender 2: { 3: Male = 1, 4: Female, 5: } 6: 7: public class User 8: { 9: public virtual int Id { get; set; } 10: public virtual string UserName { get; set; } 11: public virtual Gender Gender { get; set; } 12: } 13: zmapujemy całkowicie standardowo: public class UserMap : ClassMap<User> { public UserMap() { Id(x => x.Id); Map(x => x.UserName); Map(x => x.Gender); } } to w bazie zobaczymy wartości enuma ...
Bazy danych i XML 5500 dni, 4 godziny, 3 minuty temu 54 źrodło rozwiń
Autor: Jakiś czas temu opublikowałem garść porad dla naprawdę zaczynających z NHibernate - od zera. Była to raczej wysokopoziomowa teoria pomieszana z linkami. Tym razem zajrzymy w kod i pokażę w jaki sposób można zacząć tworzyć i testować aplikację z NHibernate jeszcze przed zaplanowaniem struktury bazy danych czy nawet przed wyborem docelowego serwera baz danych.
Ostatnio pisałem o AutoMapperze, a kiedyś wcześniej o NHibernate. Dzisiaj złączę te dwa narzędzia niczym Jasia i Małgosię, Tristana i Izoldę, Lecha i Jarosława, a z ich nawzajemnego obcowania narodzi się problem, który dość łatwo przegapić. Wróćmy do przedstawionych ostatnio, banalnych klas:
Ostatnio przedstawiłem sposób konfiguracji i wykorzystania biblioteki NHibernate.Validator w aplikacji Windows.Forms. Po wypełnieniu formularza użytkownik otrzymywał jedynie informację, iż jest on wypełniony poprawnie/niepoprawnie. Warto byłoby oznaczyć błędnie wypełnione pola. W tym celu wykorzystam komponent ErrorProvider.
Ostatnio miałem kolejne podejście do NHibernate. Tym razem zdecydowanie udane. W ciągu minionych kilku tygodni trzykrotnie prowadziłem też w "swoim środowisku" rozmowę na temat taki jak w poście – jak zacząć przygodę z NHibernate? Postanowiłem więc, że warto efekt takiej rozmowy opublikować szerszemu gronu.
Bazy danych i XML 5534 dni, 22 godziny, 30 minut temu 180 źrodło rozwiń
W poprzedniej części wprowadzającej zdradziłem temat, a więc zajmiemy się kontenerem IoC. Napisałem także, że z frameworka Sping.Net można skorzystać kompleksowo lub użyć tylko jego wybranych elementów. Z czego byśmy jednak nie skorzystali to potrzebna nam będzie podstawowa wiedza o skonfigurowaniu Springa i o kontene...
Architektura 5539 dni, 18 godzin, 56 minut temu 424 źrodło rozwiń
Autor: Od roku piszę projekty posługując się NHibernate. A tu dopiero mój pierwszy post o tym super narządku :) Post tym bardziej niefortunny, gdyż dotyczy błędu na jaki można się nie chący natknąć i stracić dobrą godzinę na jego rozwiązanie. NHibernate pozwala na definiowanie różnego typu generatory wartości klucza głównego. Oprócz generatorów natywnych, czyli wartości generowanych przez bazy...
Dziś pragnę się z Wami podzielić moim odkryciem. Być może dla niektórych z Was nie będzie to nowość, a jeśli nawet to nic specjalnego. U mnie jednak spowodowało sporo radości (profesjonalnej) i uczucie podziwu dla autorów NHibernate.
Architektura 5656 dni, 22 godziny, 6 minut temu 62 źrodło rozwiń
Simon says... : Zdaję sobie sprawę, że postem tym mogę wywołać świętą wojnę religijną, ale - niech tam - zaryzykuje. Do napisania na ten temat skłoniła mnie notatka znaleziona przeze mnie ostatnio w sieci. Notatka ta zajmowała się porównywaniem wydajności EDM (Linq to Entities) z NHibernate. Temat ten był bardzo gorący jakiś czas temu. Teraz nieco ostygł, ale wciąż (teraz pewnie z racji zbliżającego się EDM 2.0) trzyma się nieźle.No więc do rzeczy: co jest szybsze - EDM czy NHibernate? A może wszyst...
Bazy danych i XML 5677 dni, 5 godzin, 8 minut temu 158 źrodło rozwiń