Najlepsza praktyka, aby dołączyć do usług związanych z członkostwem / rolą / profilem nhibernate i ASP.NET

Wcześniej uzyskałem ogólną aplikację ASP.NET (MVC), która używa NHibernate jako warstwy trwałości modelu, a usługi ASP.NET Membership / role / profile jako warstwa zarządzania użytkownikami.

Pytanie jest tym, co można uznać za najlepszą praktykę tworzenia powiązań między danymi domeny a użytkownikami. (Na przykład chcę utworzyć system forum, który chcę powiązać każdy temat / posty z konkretnym użytkownikiem i chcę wyświetlić użytkownika na każde żądanie).

Oto cechy, o których myślałem:

Przechowuj identyfikator użytkownika w NHibernate (np. Mając kolumnę Guid we wszystkich klasach domeny (Posty, tematy itp.), Która musi odwoływać się do użytkownika) i używaj GetUser za każdym razem, gdy potrzebujesz nazwy użytkownika z guid (co może spowodować w zapytaniach n + 1)

Wariant B: Alternatywnie możesz też zapisać nazwę użytkownika.

Korzystaj z tej samej bazy danych i utwórz obiekt domeny obsługiwanej przez NHibernate tylko do odczytu, który odwzorowuje te same dane, co usługi M / R / P.Zapomnij o M / R / P i utwórz oddzielną usługę zarządzania użytkownikami opartą na NHibernateZapomnij o obu i używaj J2EE / RoR / merb / DJango / etc. (proszę nie wybierać tej opcji :))inny...

questionAnswers(3)

yourAnswerToTheQuestion