2016-09-07 2 views
0

ASP.NET 2.0 Идентификационные dbo.AspNetUsers определяется как строка:Почему ASP.NET Identity 2.0 dbo.AspNetUsers Определяет строку вместо int?

Id = c.String(nullable: false, maxLength: 128) 

Когда она может быть определена как целое:

Id = c.Int(nullable: false, identity: true) 

Почему это так? Что такое +/-?

Имеет ли смысл изменять его на целое число или существует риск завинчивания всего?

+0

[здесь] (http://www.asp.net/identity/overview/extensibility/change-primary-key-for-users-in-aspnet-identity) вы можете найти, как изменить его и [здесь] (https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=integer%20vs%20string%20primary%20key) около +/- этого. – tmg

+1

Возможный дубликат [Почему ASP.NET Identity 2.0 использует GUID/строку как идентификатор пользователя?] (Http://stackoverflow.com/questions/23891446/why-is-asp-net-identity-2-0-using -a-guid-string-as-user-id) – Shoe

ответ

-1

Не меняйте его. Если вы заметили, класс UserManager работает только там, где первичный ключ имеет строку типа.

+0

Это неверно. Вы можете полностью изменить тип первичного ключа в Identity – trailmax

1

В дополнение к уже связанному ответу - Идентичность построена таким образом, что она может вместить любой вид хранилища. Я видел, как реализовывались таблицы Azure и хранилища текстовых файлов. И не все из них могут использовать int/Guid в качестве первичного ключа или даже иметь первичный ключ вообще.

Таким образом, самый низкий общий знаменатель для любой системы - строка. Но его можно изменить на int или Guid или независимо от того, что поддерживает ваше хранилище.

Смежные вопросы