Sto cercando di capire perché le nuove tabelle ASP.NET Identità smesso di usare Guid
(uniqueidentifier tipo) come tasti - invece sta ora utilizzando nvarchar(128)
ma ancora mantenere un Guid
come string
...Perché le nuove tabelle Identity ASP.NET smettono di utilizzare Guid (tipo uniqueidentifier) come chiavi?
Non è è un enorme spreco? (uniqueidentifier
è a soli 2 integers
vs tutta Guid
come un 36 carattere string
)
Sono sospettare che Entity Framework potrebbe essere responsabile di questo ...
E 'sicuro di tornare ai tasti uniqueidentifier?
Qualcuno può dirmi quali sono i vantaggi dell'utilizzo di stringhe di 36 caratteri?
'uniqueidentifier' è 16 byte, non 8. E la dimensione della stringa non dipende dalla sua lunghezza, quindi in realtà sono sempre gli interi 256 byte (nvarchar ha due byte per" carattere "), e lo stesso per eventuali indici e associazioni. Immagino che l'obiettivo sia la flessibilità, ma mi sembra un compromesso per me ... – Luaan
Grazie, per qualche motivo ho avuto Guid = 2 int bloccato nella mia testa ... ma penso che il nuovo server SQL allochi solo il numero di caratteri nvarchar che vengono utilizzati e non spendere tutti i 128 se solo 36 sono usati - ma ancora un grande spreco ... – Yovav
So che lo fa con 'nvarchar (max)' (e anche allora c'è una lunghezza minima IIRC) e simili, non ho esplorato come funziona esattamente diversamente. È possibile che abbiano risolto tutti questi problemi, ma non dovremmo semplicemente usare 'nvarchar (max)' ovunque? : D – Luaan