Beispiel für die Verwendung von asp.net 5 MVC 6 mit Identity und EF 6

8

Ich richte ein neues Projekt mit asp.net 5 und MVC 6, aber ich möchte Entity Framework 6 aufgrund der fehlenden Funktionen in EF 7 verwenden.

Ich habe EF 6.1.3 eingerichtet und das funktioniert.

Identität 3.0 hängt von EF 7 ab, also habe ich das entfernt und in Identity 2.2 referenziert aber ich bin mir nicht sicher, wohin ich von hier aus gehen soll.

    
Tom 26.03.2015, 22:03
quelle

4 Antworten

4

Ich bin mir nicht sicher, wie dies in der endgültigen Version von ASP.NET 5 gehandhabt wird, aber im Falle von ASP.NET 5 RC1 haben wir Folgendes:

Zuerst sollten Sie mit Identity 3.0 gehen, da es keine Möglichkeit gibt, Identity 2.x in MVC 6 zu verwenden, soweit ich weiß.

Zweitens müssen Sie zur Implementierung von Identity 3.0 mit EF6 eigene "EF6-freundliche" Versionen aller Klassen im Microsoft.AspNet.Identity.EntityFramework-Namespace implementieren (der Code ist hier verfügbar - Ссылка ), da die ursprünglichen Klassen nur mit EF7 funktionieren sollen:

  • IdentityDbContext
  • Rollenspeicher
  • Benutzerspeicher
  • Identitätsrolle
  • IdentityRoleClaim
  • IdentityUser
  • IdentityUserClaim
  • IdentityUserLogin
  • IdentityUserRole

Ihre Implementierungen sollten EF6 anstelle von EF7 verwenden. Der Prozess ist ziemlich einfach, aber wenn Sie Zeit sparen möchten, habe ich meine Implementierung hier geteilt:

Ссылка

    
Gena Hrapan 27.11.2015 17:06
quelle
2

Dies kommt in ein paar Teilen.

  1. Sie können Microsoft.AspNet.Identity 3.0.0 verwenden, aber Sie müssen Ihre eigenen UserStore und RoleStore erstellen. Persönlich kopierte ich die Quelle von UserStore.cs und RoleStore.cs und machte die notwendigen Anpassungen an Verwenden Sie meine EF6 Benutzer- und Rollenklassen. Sie haben einige zusätzliche Funktionen, die in EF6 standardmäßig nicht verwendet werden, wie die Normalisierung von Benutzernamen, E-Mail-Adressen und Rollennamen, die Sie unterstützen müssen (oder umgehen), aber die Schnittstellen erfordern nur POCOs, also werden Sie dort gut sein.
  2. Folgen Sie dem Identitätsbeispiel-MVC-Projekt , aber mit Ihren eigenen Stores, die in angegeben sind Ihre Startdatei:
%Vor%
  1. Seien Sie sich sehr bewusst, dass die Microsoft.AspNet.Identity (und alle von asp.net 5) noch in Arbeit sind, und Dinge wie das Bearer-Token sind weitgehend undokumentiert, und die Identity 3 hat ein bisschen mehr eingerichtet als Identity 2.x; es wird einige Feinabstimmungen erfordern und sich für CTP 7 und andere zukünftige Versionen ändern.
Matt DeKrey 16.04.2015 02:28
quelle
2

EDIT für 1.0.0: Migrator.EF6 unterstützt jetzt 1.0.0.

EDIT für RC2: Migrator.EF6 unterstützt jetzt RC2.

Am besten wäre es, den EF7-Provider von Identity mit EF6 zu betreiben.

Für einen bereits ausgeführten Port überprüfen Sie dies für Identity 3.0 + EF6, das unter Asp.Net Core (5) arbeitet: MR.AspNet.Identity.EntityFramework6 .

Wenn Sie außerdem EF6-Migrationen benötigen, überprüfen Sie meine andere Antwort hier .

    
mrahhal 09.03.2016 11:07
quelle
0

Hier ist ein winziger Wrapper, der die ASP.NET EntityFrameowork 6 in einer einzigen ASP.NET Core Identity portiert kleine Datei.

Was es tut, es umschließt das vorhandene UserStore für EF6 im neuen agnostischen ASP.NET Core IUserStore<TUser> .

Unterstützung für TKey leicht gemacht.

    
Shimmy 17.05.2017 22:58
quelle