我第一次使用带有 SQL 后端的 ASP.NET Membership Provider,我遇到了一些有异味的东西,这告诉我我要么做错了,要么一直没有想到。 ..
Membership 提供者创建了几个表,包括默认的,webpages_Membership
它跟踪用户属性,如用户名。在我的应用程序数据库中,我有一个employees
表来跟踪我的员工的所有用户数据。该employees
表有一个唯一标识符id
,用作多个其他表的外键列,以跟踪诸如谁更新了记录、创建了记录、分配给谁、谁留下了评论等。
我所做的第一个假设是我不想将业务逻辑和字段放在webpages_Membership
表中,也不想UserId
在外键关系中使用列。
我所做的第二个假设是我完全控制了注册过程,我可以根据电子邮件地址字段简单地将webpages_Membership
表格和我的employees
表格连接在一起,因为用户的登录名将被迫成为他们的电子邮件。
现在在我的脑海里闻起来很可怕......
取这个值User.Identity.Name
并在我的数据库中查询employees
表只是为了Employee
填充一个对象,以便我可以Id
在记录上设置一个字段,这似乎是错误的。
- 我应该为此做些什么?
- 将会员数据和业务对象数据连接在一起的最佳方式是什么?
- 我应该这样做吗?
- 我是否应该将 Employee 对象存储在用户会话中,以免每次事务都返回数据库?