Frage

Ich habe eine allgemeine ASP.NET (MVC) Anwendung kommt, die NHibernate als Modell Persistenz-Schicht verwendet, und ASP.NET Mitgliedschaft / Rolle / Profil Dienstleistungen wie die Benutzerverwaltung Schicht.

Die Frage ist, was als beste Praxis betrachtet werden kann Verlinkungen zwischen den Domaindaten und dem Benutzer zu erstellen. (Zum Beispiel ist, ich will ein Forum System, das ich je Themen / Beiträge zu einem bestimmten Benutzer verknüpfen erstellen möchten, und wollen auf jede Anforderung den Benutzer angezeigt werden).

Dies sind die posiibilites Ich habe von gedacht:

  1. Speichern Sie die Benutzer-ID in NHibernate (wie eine GUID-Spalte in allen Ihren Domain-Klassen mit (Beiträge, Themen etc.), die ein Benutzer verweisen muss) und verwenden GetUser jedes Mal, wenn Sie den Namen des Benutzers müssen aus die guid (die n + 1-Abfragen führen könnte)

    B-Variante. Alternativ speichern Sie die Benutzername zu

  2. die gleiche Datenbank verwenden, und erstellen Sie eine Nur-Lese-NHibernate maintaned Domain-Objekt Benutzer, dass die Karten auf die gleichen Daten wie die M / R / P Dienste tun.
  3. Vergessen Sie M / R / P und erstellen Sie einen separaten Benutzer-Management-Service basiert auf NHibernate
  4. Vergessen Sie beide und verwenden J2EE / RoR / merb / django / etc. (Bitte nicht diese Option wählen :))
  5. andere ...
War es hilfreich?

Lösung

Ich würde gehen Schritt 2 (fast, da es nicht unbedingt sein muss, nur lesbar) und einen benutzerdefinierten Mitgliedschaftsanbieter für NHibernate erstellen.

Um Zeit zu sparen, können Sie eine vorhandene wie die von Manuel Abadia .

Damit halten Sie die volle Leistung von NHibernate (verzögertes Laden, etc.) und M / R / P Dienste genießen.

Andere Tipps

Es gibt auch eine NHibernate Basis-Mitgliedschaft Anbieter unter CodePlex

4 Jungs von rolla haben einen ausgezeichneten Beitrag, wenn Sie oben auf der asp.net Mitgliedschaft API Ihre eigenen Provider buil wollen: http://www.4guysfromrolla.com/articles/110310-1.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top