ASP.NET-Identität mit EF Database First MVC5

Ist es möglich, mit der neuen Asp.net Identität mit Database First-und EDMX? Oder nur mit dem ersten code?

Hier ist, was ich getan habe:

1) ich habe eine neue MVC5-Projekt und hatte die neue Identität erstellen Sie die neue Benutzer-und Rollen-Tabellen in meiner Datenbank.

2) ich öffnete meine Datenbank Erste EDMX-Datei gezogen und in die neue Identität, die Benutzer-Tabelle, da habe ich andere Tabellen, die sich darauf beziehen.

3) Nach dem speichern der EDMX, die Datenbank Erste POCO-generator wird automatisch erstellen Sie eine Klasse Benutzer. Jedoch, UserManager und RoleManager erwartet eine User-Klasse erbt von der neuen Identität namespace (Microsoft.AspNet.Identität.IUser), ist also die POCO User-Klasse wird nicht funktionieren.

Ich denke, eine mögliche Lösung ist das Bearbeiten meiner POCO-Generation-Klassen haben meiner User-Klasse erbt von IUser?

Ist oder ASP.NET Identität nur kompatibel mit den Code-First-Design?

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Update: Nach Anders Abel ' s Vorschlag unten, das ist, was ich getan habe. Es funktioniert, aber ich mich Fragen, ob es eine elegantere Lösung.

1) erweiterte ich mein entity User-Klasse durch erstellen einer partiellen Klasse im gleichen namespace wie meine automatisch generierte Entitäten.

namespace MVC5.DBFirst.Entity
{
    public partial class AspNetUser : IdentityUser
    {
    }
}

2) ich habe mein DataContext Erben von IdentityDBContext statt DBContext. Beachten Sie, dass jedes mal, wenn Sie aktualisieren Sie Ihre EDMX und regenerieren die DBContext-und Entity-Klassen, müssen Sie diese wieder auf.

 public partial class MVC5Test_DBEntities : IdentityDbContext<AspNetUser>  //DbContext

3) Innerhalb Ihrer auto-generierte User-entity-Klasse, müssen Sie den override-Schlüsselwort, um die folgende 4-Felder oder kommentieren Sie diese Felder aus, da Sie vererbt werden, von IdentityUser (Schritt 1). Beachten Sie, dass jedes mal, wenn Sie aktualisieren Sie Ihre EDMX und regenerieren die DBContext-und Entity-Klassen, müssen Sie diese wieder auf.

    override public string Id { get; set; }
    override public string UserName { get; set; }
    override public string PasswordHash { get; set; }
    override public string SecurityStamp { get; set; }

InformationsquelleAutor der Frage Patrick Tran | 2013-11-12

Schreibe einen Kommentar