Ändern des ID-Typs in Microsoft.AspNet.Identity.EntityFramework.IdentityUser

(ASP.NET MVC 5, EF6, VS2013)

Ich versuche herauszufinden, wie es gehtÄndern Sie den Typ des Felds "Id" von "string" in "int" in der Art:

Microsoft.AspNet.Identity.EntityFramework.IdentityUser

Damit neue Benutzerkonten einer Ganzzahl-ID und nicht einer GUID zugeordnet werden können. Dies scheint jedoch komplizierter zu sein, als einfach eine neue Id-Eigenschaft mit dem Typ int in meiner abgeleiteten Benutzerklasse hinzuzufügen. Schauen Sie sich diese Methodensignatur an:

(von Assembly Microsoft.AspNet.Identity.Core.dll)

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

Es scheint also andere Methoden zu geben, die in das ASP.NET-Identitätsframework eingebunden sind und für die die Benutzer-ID eine Zeichenfolge sein muss. Muss ich diese Klassen auch neu implementieren?

Eine Erklärung, warum ich keine GUIDs für IDs in der Benutzertabelle speichern möchte:

- Es gibt andere Tabellen, die Daten über einen Fremdschlüssel mit der Benutzertabelle verknüpfen. (Wenn Benutzer Inhalte auf der Site speichern.) Ich sehe keinen Grund, den größeren Feldtyp zu verwenden und zusätzlichen Datenbankspeicherplatz ohne klare Vorteile auszugeben. (Ich weiß, dass es andere Posts gibt, in denen GUIDs im Vergleich zu int-IDs verwendet werden, aber es scheint, als würden viele vorschlagen, dass int-IDs schneller sind und weniger Speicherplatz belegen, was mich immer noch wundert.)

-Ich plane, einen erholsamen Endpunkt bereitzustellen, damit Benutzer Daten über einen bestimmten Benutzer abrufen können. Meiner Ansicht nach:

/users/123/name

ist sauberer als

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

Weiß jemand, warum das ASP.NET-Team beschlossen hat, IDs auf diese Weise zu implementieren? Bin ich kurzsichtig, wenn ich versuche, dies in einen Int-Typ zu ändern? (Vielleicht gibt es Vorteile, die ich vermisse.)

Vielen Dank...

-Ben

Antworten auf die Frage(5)

Ihre Antwort auf die Frage