我想知道如果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()
實際上是否基於此存儲過程?