Wenn ich auf die ASP.NET 3-Identität schaue, verwendet es eine string
und nicht eine Guid
für den eindeutigen Primärschlüssel.Wie EF-Core eine Guid anstelle von String für seine ID/Primärschlüssel verwenden kann
In meinem Entity Framework
code first
ApplicationUser
Klasse Benutzer erben ich die Klasse Identität
public class ApplicationUser : IdentityUser
{
}
, die sich ergibt, wenn ich meine Entity Framework erstellen Migrationen eine Tabelle aspnetusers
mit einem Schlüsseltyp nvarchar(450)
statt uniqueidentifier
Wenn ich dies mit ASP.NET Identity 2
ENtity Framework
Projekt vergleichen, erstellt es ein ID-Feld von uniqueidentifier
und nicht nvarchar(450)
würde ich für die Performance der Datenbank Primärschlüssel und Fremdschlüssel von uniqueidentifier
wäre besser als nvarchar(450)
vorstellen Gibt es eine Möglichkeit für die eindeutigen Schlüssel Guid
statt string
und uniqueidentifier
statt nvarchar(450)
mit ASP.NET Identity 3
zu bedienen?
Es gibt eine previous question wie man eine Zeichenkette in eine Guid konvertiert, aber ich möchte, dass die Datenbanktabellen-ID eine GUID ist.
fand ich eine andere question als auch für eine vorherige BETA, wenn die Länge nvarchar (128) war. Der Grund dafür ist, dass nicht alle Datenbanken Guids unterstützen und dass es aus Gründen der Flexibilität geändert wurde.
Gibt es muss eine einfache Möglichkeit, von String Guid zu ändern, ohne die ganzen identity 3
zu Umschreiben?
nvarchar(450)
ist wirklich übertrieben und gibt alle Arten von Warnungen, wenn Einschränkungen SQL Server-Datenbank zu erstellen. Datenbankadministratoren werden diese Warnungen definitiv nicht mögen.
Bitte beachten Sie, dass es eine Fehler in EntityFramework 7/EntiryFramework Core 1.0 bis rc1-final, der Migrationen bei der Verwendung von Generics in Fremdschlüsseln unterbricht, die nicht über die integrierten Typen (wie Guid) geschlossen sind. Dies ist seit einiger Zeit in rc2-Nightlies behoben, aber es ist noch nicht veröffentlicht. https://github.com/aspnet/EntityFramework/issues/3545 – Tseng