【发布时间】:2012-07-12 15:49:43
【问题描述】:
有没有办法在数据库中为新的 .NET 4.5 DefaultMembershipProvider 表名添加前缀?它们曾经被命名为 aspnet_Users、aspnet_Roles 等,现在它们仅命名为 Users、Roles 等,这与我的具有表 User 的应用程序架构冲突。
如果我想使用新的通用提供程序并避免这个命名问题,我唯一的选择是使用单独的数据库作为成员吗?
【问题讨论】:
-
为什么将它们放入完全相同的数据库中?他们应该是分开的。您应该质疑使用自己的不带前缀的表格是否明智。
-
这是一个见仁见智的问题,两者都做是很常见的,这就是为什么 .NET 框架包含 aspnet_regsql.exe 工具的原因。不幸的是,在 .NET 4.5 中,此工具假定了旧提供程序。
-
此外,新的通用提供程序将在运行时(如果它们不存在)使用您的默认连接字符串在您的数据库中创建其表。因此,除非您为成员资格提供程序指定一个新数据库,否则它将进入您的应用程序数据库。我不会认为在我自己的表格前加上前缀是明智的。我的表没有被注入任何人的应用程序,但成员表是设计使然。
-
使用通用提供程序的部分原因是它们支持 SQL Compact Edition 和 SQL Azure。如果您计划在 SQL Azure 上使用您的应用程序,并且您认为您可能需要您的成员资格表参与事务,那么将它们定位在同一个数据库中是唯一的方法,否则您最终将需要 MS DTC 而不是准备在 Azure 上工作。
标签: .net sql asp.net-mvc universal-provider