Почему ASP. Net Core Identity использует строку для своих свойств первичного ключа? - PullRequest
0 голосов
/ 16 апреля 2020

По умолчанию ASP. Net Core Identity использует тип string для полей первичного ключа своих встроенных объектов. Например, класс IdentityUser имеет свойство Id в качестве первичного ключа и его тип string. (Это сопоставлено с типом nvarchar(450) на SQL сервере)

Если найдете это особенным, тем более что по умолчанию значения этих ключей фактически являются строковыми представлениями Guid s:

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

Почему конструкторы ASP. Net Core Identity выбрали для использования тип string для первичных ключей, скажем, типа Guid?

1 Ответ

1 голос
/ 16 апреля 2020

В настоящее время я не могу комментировать ваш вопрос, но я считаю, что здесь есть ответы на вопрос, который вы задаете:

Почему asp. net Идентификационный идентификатор пользователя является строкой?

Второй ответ из вышеуказанного поста: { ссылка }

В зависимости от того, какую версию аутентификации ASP. Net вы используете в базе данных ASP. NET Identity v2 должен хранить его как уникальный идентификатор (Guid) в таблице AspNetUsers. В более предыдущих версиях он будет хранить идентификатор пользователя как int в таблице webpages_Membership.

Я полагаю, что он отображает его как строку, так что он может быть любым типом данных, который вам нравится, и затем может быть приведен в вашем коде, как требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...