簡體   English   中英

.NET 核心 IdentityUser 模型中規范化電子郵件和用戶名的用途是什么?

[英]What is the use of Normalized Email & UserName in .NET core IdentityUser Model?

當我在Asp.Net Identity使用IdentityUser模型和EntityFramework ,它會在數據庫中創建一些標准字段。 除了以下兩個字段外,所有字段都是不言自明的。

  • NormalizedUsername - 包含用戶名的大寫值
  • NormalizedEmail - 包含電子郵件的大寫值

我的疑問是:

  1. 為什么我們需要這些標准化字段? 它在哪里使用?
  2. 將它持久化到數據庫中的目的是什么?

據我了解,出於性能原因,這兩個字段都存在。 在以下線程中對用戶名和電子郵件的規范化進行了解釋,導致性能降低,並用於驗證UserNameEmail字段的不區分大小寫的唯一性。 它們保存在數據庫中,以便能夠在它們上創建索引,從而通過規范化的用戶名和電子郵件sargable 進行查找

這些字段沒有其他原因或用途。

因為在String.Compare("a", "A") ,基於二進制值, "a"大於"A" 上面的比較語句轉換為 String.Compare(01100001, 01000001)。 如您所見,一個值大於另一個值。

規范化將屬性帶到UpperCase (我相信),其中 SQL 可以按順序索引UserName二進制值,而不會出現任何意外的亂序小寫字母及其各自的二進制值。

這提高了搜索或查詢數據庫時的性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM