Elementy otagowane przez NHibernate

  • NHibernate, Fluent NHibernate i FILESTREAM, czyli przechowywanie plików w bazie danych trochę inaczej

    30.07.2013

    Pytanie “przechowywać, czy nie przechowywać” pojawia się praktycznie przy okazji każdego projektu, w którym trzeba przesłać coś więcej niż proste formy do i od użytkownika. Szkoły są dwie (plus hybryda, o czym za chwilę), jednak wybór, która w danym wypadku jest najlepsza zależy w dużej mierze od specyfiki samej aplikacji oraz rozwiązań technicznych użytych w projekcie.

    Czytaj więcej...
  • Zrób to sam - NHibernate Profiler

    20.03.2013

    Średnio raz w miesiącu NHibernate doprowadza mnie do białej gorączki wyjątkiem: System.Transactions.TransactionAbortedException: The transaction has aborted. ---> System.Data.SqlTypes.SqlTypeException: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. Powodem powstania tego wyjątku jest niewypełnienie (lub błąd w definicji mapowania) właściwości DateTime obiektu biznesowego zapisywanego do bazy danych. Problem w tym, że treść tego komunikatu jest tak ogólna, że w przypadku pracy z domeną złożoną z więcej niż kilku obiektów namierzenie źródła problemu może potrwać… bardzo długo. Nie pomoże tutaj nawet Sql Profiler z Sql Server.

    Czytaj więcej...
  • NHibernate i serializacja drzewa obiektów przy użyciu biblioteki Json.NET

    07.03.2013

    Jeżeli korzystasz z NHibernate i Json.NET i chcesz bezpośrednio serializować obiekty biznesowe pobrane z bazy danych przy użyciu NHibernate do formatu JSON to bardzo szybko napotkasz na problem w postaci wyjątku - Error getting value from 'ReadOnly' on 'NHibernate.Proxy.DefaultLazyInitializer'. Problem ten powstaje w momencie gdy próbujesz serializować encję pobraną przez NHibernate, która posiada niezainicjowane wiązania z innymi encjami (obiekty proxy do obsługilazy loading). Klasa serializująca przemierza drzewo obiektów w poszukiwaniu publicznych właściwości obiektów. Po natrafieniu na proxy, nie umie go przetworzyć na JSON i rzucany jest wyjątek.

    Czytaj więcej...