Kiedy mówisz Zamek Zakładam, że oznaczać Castle Active Record?
Różnica polega na tym, że NHibernate to OR/M i jest skierowany do programistów, którzy chcą skupić się na domenie zamiast na bazie danych. Z linq do sql, twoja baza danych jest już istniejąca, a ty jesteś związkiem, a niektóre programowanie będzie oparte na sposobie definiowania twojej bazy danych.
Teraz między NHibernate i Castle ActiveRecord - są one podobne do tego, że kierujesz projektowaniem aplikacji z domeny, ale z NHibernate dostarczasz odwzorowujące pliki xml (lub klasy mapowania z płynnym NHibernate), gdzie w Active Record używasz konwencja dotycząca konfiguracji (przy użyciu atrybutów do definiowania kolumn i ustawień, które nie pasują w sposób naturalny). Akta Castle Active nadal używają NHibernate w tle.
Jeden OR/M niekoniecznie jest "jedynym prawdziwym sposobem". To zależy od twojego środowiska, aplikacji, którą rozwijasz i od twojego zespołu.
Możesz również chcieć sprawdzić SubSonic. Świetnie sprawdza się w przypadku aktywnych rekordów, ale nie w przypadku projektu, w którym chcesz się skupić głównie na domenie. W zależności od projektu, zwykle używam albo NHibernate (z Castle Active Record) lub Subsonic