我想知道如果aspnet_Users
表总是按用户名排序,即使我添加两个已经存在的用户之间按字母顺序排列的新用户。aspnet_Users表的排序顺序
我注意到方法Membership.GetAllUsers()
似乎总是返回一个排序收集MembershipUsers。
而且当我看着SQL Server Management Studio并没有ORDERBY
条款运行一个简单的SQL查询...
SELECT [UserName]
FROM [MyDb].[dbo].[aspnet_Users]
...我总是得到一个排序结果列表。
我对SQL Server仍然很陌生,但我预计当我向表中添加一个新行时,它(物理上)会附加到表的末尾。当我运行一个没有ORDERBY的select语句时,这些行将按照它们最初插入数据库的顺序被选中(所以没有任何特定的排序顺序)。
我错了我猜。但它是如何工作的?这可能是aspnet_Users表的特殊之处吗?
我很高兴GetAllUsers()返回的MemberShipUserCollection被排序,但总是有保证吗?
感谢您的信息!
更新
我刚刚注意到,该数据库包含一个名为aspnet_Membership_GetAllUsers
的存储过程。该过程实际上包含UserName
的ORDER BY
子句。因此,如果在我的代码中使用Membership.GetAllUsers()
时总是调用此存储过程(至少如果我使用的是SqlMembershipProvider),它解释了为什么Membership.GetAllUsers()
返回的集合按UserName排序。
仍然存在问题:Membership.GetAllUsers()
实际上是否基于此存储过程?