Как изменить тип идентификатора в Microsoft.AspNet.Identity.EntityFramework.IdentityUser

(ASP.NET MVC 5, EF6, VS2013) I '

я пытаюсь понять, какизменить тип "Я бы" поле от строки до int в типе:

Microsoft.AspNet.Identity.EntityFramework.IdentityUser

чтобы новые учетные записи были связаны с целочисленным идентификатором, а не с GUID. Но, похоже, это будет сложнее, чем просто добавить новое свойство Id с типом int в мой производный пользовательский класс. Взгляните на подпись этого метода:

(из сборки Microsoft.AspNet.Identity.Core.dll)

public class UserManager : IDisposable where TUser : global::Microsoft.AspNet.Identity.IUser
  {
  ...
  public virtual Task AddLoginAsync(string userId, UserLoginInfo login);
  ...
  }

Так что, похоже, существуют другие методы, встроенные в каркас идентификации ASP.NET, которые требуют, чтобы userId был строкой. Нужно ли мне переопределить эти классы?

Объяснение, почему я нея не хочу хранить GUID для идентификаторов в пользовательской таблице:

-Будут другие таблицы, которые связывают данные с таблицей пользователей через внешний ключ. (Когда пользователи сохраняют контент на сайте.) Я не вижу причин использовать больший тип поля и тратить дополнительное пространство базы данных без явных преимуществ. (Я знаю, что есть и другие сообщения об использовании идентификаторов GUID против идентификаторов int, но многие, похоже, предполагают, что идентификаторы int быстрее и занимают меньше места, что вызывает у меня удивление.)

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

/users/123/name

чище чем

/users/{af54c891-69ba-4ddf-8cb6-00d368e58d77}/name

Кто-нибудь знает, почему команда ASP.NET решила реализовать идентификаторы таким образом? Я недальновиден в попытке изменить это на тип int? (Возможно, есть преимущества, которые ям отсутствует.)

Спасибо...

-Бен

Ответы на вопрос(5)

Ваш ответ на вопрос