Ich möchte die Namen der von ASP.NET Identity 2.0 verwendeten Tabellen ändern. Ich habe verschiedene ähnliche Fragen gesehen, aber nichts, was mein Problem löst. Zum Beispiel diese Art von Lösung: Ссылка scheint von Code First (?) abhängig zu sein. Auf jeden Fall macht die Implementierung von OnModelCreating nichts für mich. Ich habe die AspNetUsers und ähnliche Tabellen grundsätzlich in meine eigenen Namen umbenannt und möchte diese nutzen können. Ich habe einen vorhandenen EF-Kontext (MyContext), den ich verwenden möchte, also änderte ich ihn, um von IdentityDbContext abzuleiten (die t4 Schablone redigierend), und dann in Startup.Auth ich habe:
%Vor%Aber das Problem tritt auf, wenn ich versuche mich anzumelden, dass ich bekomme "kann Server nicht kontaktieren". Ich stelle mir das vor, weil mein UserStore keine Möglichkeit hat zu wissen, welche Benutzer-Tabellen in meinem Kontext sind. Ich hatte gehofft, dass dies der OnModelCreating-Code sein würde, aber ich bin diesbezüglich unklar. Ich stelle mir vor, dass UserStore immer noch nach einer "AspNetUsers" -Tabelle sucht, obwohl ich nicht weiß, woher diese Namen kommen. Ich bin auch unbehaglich über die Änderung der t4-Vorlage für meinen Kontext - ist das die Art, die ich von IdentityDbContext ableiten soll?
Jede Hilfe wird sehr geschätzt.
Wenige Schritte:
Microsoft.AspNet.Identity.EntityFramework
connection string
hinzu
Nun müssen Sie Ihre benutzerdefinierte Database Context
definieren:
Wie Sie sehen können, habe ich DbModelBuilder
verwendet, um alle Entitäten einer neuen Tabelle zuzuordnen.
Enable-Migrations
Es wird ein Ordner Migrations
mit der Konfigurationsdatei Configuration.cs
erstellt.
Es sollte ungefähr so aussehen:
%Vor% Ändern Sie im Konstruktor die Eigenschaft AutomaticMigrationsEnabled
in true
.
Update-Database
Es sollte das Skript ausführen, um die neuen Tabellen zu erstellen.
Sie können Ihre Entitäten (und IDs) anpassen, indem Sie eine benutzerdefinierte Klasse für jede definierte Schnittstelle erstellen.
%Vor%Da Sie Owin verwenden, können Sie Ihren UserStore definieren:
%Vor%und Ihre UserManager-Implementierung:
%Vor% Und Ihr Owin.Startup
sollte etwa so aussehen:
Wenn Sie sich eine benutzerdefinierte Implementierung ansehen möchten, können Sie mein GitHub-Repository überprüfen mit einer einfachen Arbeitslösung auf ASP.NET MVC.
UPDATE:
Es gibt ein anderes Projekt in dieser Lösung mit einem minimalen Setup; Im Grunde müssen Sie nur Ihren Kontext definieren ( IdentityDbContext ), wenn Sie nur Ihre Tabellen umbenennen möchten.
Das Projekt befindet sich hier .
Identität 2 mit Entity Framework setzt Code First voraus. Dieses Projekt scheint zu tun, was ich brauche: Ссылка
Tags und Links c# entity-framework asp.net-identity-2