[英]What is the use of Normalized Email & UserName in .NET core IdentityUser Model?
當我在Asp.Net Identity
使用IdentityUser
模型和EntityFramework
,它會在數據庫中創建一些標准字段。 除了以下兩個字段外,所有字段都是不言自明的。
NormalizedUsername
- 包含用戶名的大寫值NormalizedEmail
- 包含電子郵件的大寫值我的疑問是:
據我了解,出於性能原因,這兩個字段都存在。 在以下線程中對用戶名和電子郵件的規范化進行了解釋,導致性能降低,並用於驗證UserName
和Email
字段的不區分大小寫的唯一性。 它們保存在數據庫中,以便能夠在它們上創建索引,從而通過規范化的用戶名和電子郵件sargable 進行查找。
這些字段沒有其他原因或用途。
因為在String.Compare("a", "A")
,基於二進制值, "a"
大於"A"
。 上面的比較語句轉換為 String.Compare(01100001, 01000001)。 如您所見,一個值大於另一個值。
規范化將屬性帶到UpperCase
(我相信),其中 SQL 可以按順序索引UserName
二進制值,而不會出現任何意外的亂序小寫字母及其各自的二進制值。
這提高了搜索或查詢數據庫時的性能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.