我有一个通用的ASP.NET(MVC)应用程序,它使用NHibernate作为模型持久层,并使用ASP.NET Membership / role / profile服务作为用户管理层。
问题是什么可以被认为是在域数据和用户之间建立链接的最佳实践。 (例如,我想创建一个论坛系统,我想将每个主题/帖子链接到特定用户,并希望在每次请求时显示用户)。
这些是我一直在想的正面情结:
将用户ID存储在NHibernate中(比如在所有需要引用用户的域类(帖子,主题等)中都有一个Guid列)并在每次需要用户名时使用GetUser guid(可能导致n + 1个查询)
B变体:或者也存储用户名。
答案 0 :(得分:6)
我会选择第2步(因为它不一定需要只读),并为NHibernate创建自定义成员资格提供程序。
为了节省时间,您可以使用现有的Manuel Abadia。
这样你就可以充分利用NHibernate(延迟加载等)并享受M / R / P服务。
答案 1 :(得分:2)
答案 2 :(得分:1)