我有一个通用的ASP.NET(MVC)应用程序,它使用NHibernate作为模型持久层,并使用ASP.NET Membership / role / profile服务作为用户管理层。
问题是什么可以被视为在领域数据和用户之间创建链接的最佳实践。 (例如,如果我想创建一个论坛系统,我想将每个主题/帖子链接到特定的用户,并希望在每个请求中显示该用户)。
以下是我一直在考虑的可能性:
在NHibernate中存储用户ID(例如,在需要引用用户的所有领域类(帖子、主题等)中具有Guid列),并在每次需要从guid获取用户名时使用GetUser(这可能导致n + 1查询)
B变体:或者也存储用户名。
使用相同的数据库,并创建一个只读的NHibernate维护的领域对象“User”,该对象映射到与M / R / P服务相同的数据。
忘记M / R / P,并创建基于NHibernate的单独的用户管理服务
忘记两者都使用J2EE / RoR / merb / DJango等(请不要选择此选项 :))
其他...