nhibernateおよびASP.NETメンバーシップ/ロール/プロファイルサービスに参加するためのベストプラクティス
-
05-07-2019 - |
質問
NHibernateをモデルの永続化レイヤーとして使用し、ASP.NET Membership / role / profileサービスをユーザー管理レイヤーとして使用する汎用ASP.NET(MVC)アプリケーションがあります。
問題は、ドメインデータとユーザー間のリンクを作成するためのベストプラクティスと見なすことができるものです。 (たとえば、各トピック/投稿を特定のユーザーにリンクし、各リクエストでユーザーを表示したいフォーラムシステムを作成したいです。)
これらは私が考えていた可能性のあるものです:
-
NHibernateにユーザーIDを保存し(ユーザーを参照する必要があるすべてのドメインクラス(投稿、トピックなど)にGuid列があるなど)、ユーザーの名前が必要になるたびにGetUserを使用しますGUID(n + 1個のクエリが発生する可能性があります)
Bバリアント:または、ユーザー名も保存します。
- 同じデータベースを使用し、M / R / Pサービスと同じデータにマップする読み取り専用NHibernateメインドメインドメインユーザーを作成します。
- M / R / Pを忘れて、NHibernateに基づいて別個のユーザー管理サービスを作成します
- 両方を忘れて、J2EE / RoR / merb / DJango / etcを使用します。 (このオプションは選択しないでください:))
- その他...
解決
手順2に進み(ほとんど、読み取り専用である必要はほとんどないため)、NHibernateのカスタムメンバーシッププロバイダーを作成します。
時間を節約するために、マヌエルアバディア。
それにより、NHibernateのフルパワー(遅延読み込みなど)を維持し、M / R / Pサービスもお楽しみいただけます。
他のヒント
にもNHibernateベースのメンバーシッププロバイダーがあります。
asp.netメンバーシップAPIの上に独自のプロバイダーを組み込む場合、rollaの4人のユーザーが優れた投稿を持っています: http://www.4guysfromrolla.com/articles/110310-1.aspx
所属していません StackOverflow