2014-07-04 16 views
6

Varsayılan değer, UserId ürününü NVARCHAR(128) içinde saklar. Birisi neden bir NVARCHAR içinde saklanmadığını açıklayabilir mi? GUID’i gördüğüm kadarıyla sayılardan, harflerden ve tire işaretlerinden başka bir şey yoktur. Doğru şekilde saklanması için NVARCHAR mu gerekiyor? Veri türü kullanımı, Entity Framework uygulamasının bir uygulama ayrıntısıdır.Neden ASP.Net Identity 2, UserId'de bir NVARCHAR'da saklanıyor?

+0

MS'nin bunu halka açık bir şekilde ele aldığına inanıyorum ama – IrishChieftain

+0

numaralı bağlantıya sahip değilim. Telefon numarası için varchar (15) kullanmıyorum. Ben nvarchar kullanıyorum (15). Aslında tüm dize tipi değerlerini NVARCHAR olarak kaydetmeye başladım. Teknolojinin sizin için çalışmasına izin verin. Neden VARCHAR (10) kullanmalı? NVARCHAR (10) 'u kullanabildiğiniz zaman, VARCHAR veri tipini bozan pedler kesilecektir. Ve en kötü varcharlarda, heterojen veri kümelerinden içe aktarılan değerler sorgulanırken tutarsızlıklara neden olabilir. –

+0

NVARCHAR ve VARCHAR arasındaki farklar hakkında daha fazla bilgi verir misiniz? N'nin farklı karakter kümeleri tutabileceği anlamına geliyordu. –

cevap

1

Diğer bağlayıcılar (MongoDB için olanı gibi) diğer veri tiplerini kullanır. Bunun için kendi uygulamanızı yazabilirsiniz, ancak Kimliğin 2. sürümünden beri kimliğiniz için başka türler kullanabilirsiniz (VARCHAR'ları veya dizeleri kullanmaya gerek yoktur). Bu çalışmayı elde etmek için, bazı çerçeve sınıflarından türeyen bazı ek sınıflar uygulamak zorundasınız.

Bir uygulama örneği için, this thread numaralı telefondan James'in yanıtına bakın. Bu kod snippet'i ile, Guid'leri Kimlikler için veri türü olarak almak için int ve Guid'dan jenerik türünü değiştirmeniz gerekir.

İlgili konular