0

默認情況下,ASP.NET Identity使用GUID作爲主鍵,但是當生成數據庫主鍵時,它使用nvarchar - 爲什麼它不使用SQL數據類型「UniqueIdentifier」?ASP.NET core Identity - 默認情況下,爲什麼數據庫主鍵定義了「nvarchar」而不是「UniqueIdentifier」?

enter image description here

+0

可能的重複[如何使EF-Core使用Guid而不是String ID /主鍵](https://stackoverflow.com/questions/37166098/how-to-make-ef-core-use-a-guid-instead-of-string-for-its-id-primary-key) –

+0

這絕不是重複的,問題是爲什麼不是如何。 –

回答

4

的原因是因爲ID屬性類型爲字符串。事實上,所有在asp.net核心身份的主鍵都在尋找這樣的與它們的構造函數的字符串...

public IdentityUser() 
{ 
    Id = Guid.NewGuid().ToString(); 
} 

現在就是因爲EF運行在多個數據庫供應商,而不是所有的人都確切原因一個GUID類型。 GUID類型更快,看到here,但除非你使用一個巨大的數據集並需要頂級的性能,字符串類型工作得很好

相關問題