Ich arbeite an einem neuen Projekt in ASP.NET MVC 5 mit Entity Framework 6 Code First.Verschieben Sie in ASP.NET MVC Authentifizierungsmodelle zu einer Klassenbibliothek
CURRENT STATE
Ich habe zwei Projekte in einer Lösung. Eines ist das Front-End (MVC) und das andere ist eine Klassenbibliothek, von der ich hoffe, dass sie alle meine Model-Klassen (nicht ViewModels) aufnehmen würde.
Wie wir alle wissen, wenn Sie ein neues MVC-Projekt starten, sitzen die Identity Models im Ordner [Models]. Da diese logisch in mein Klassenbibliothek-Projekt gehören, möchte ich sie dorthin verschieben.
WAS ICH
Innerhalb der [Authentifizierung] Ordner versucht haben, habe ich weitergemacht und erstellt eine ApplicationUser.cs
Klasse. Jetzt, indem ich einfach auf IdentityModels.cs
schaue, weiß ich, dass ich unter anderem Microsoft.AspNet.Identity
referenzieren müsste.
Also klicken Sie mit der rechten Maustaste auf das Referenz für das BB.DOMAIN-Projekt und klicken Sie auf {Add Reference}. Aber ich kann die Microsoft.AspNet.Identity
Bibliothek nirgendwo sehen!
KLARSTELLUNG ERFORDERLICH
Bin ich hier das Richtige zu tun? Mein derzeitiges Denken ist, dass ich etwas mache, was man normalerweise nicht tun sollte! Aber überall, wo Sie lesen, wird Ihnen gesagt, dass alle Ihre Kern-Entitäten typischerweise an einem Ort sitzen sollten.
Eine andere Sache, ich bin verwirrt über bereits, aber noch nicht das bekam, ist:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext() : base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
Wenn ich ApplicationDbContext.cs
meiner [Authentifizierung] Ordner in BB.DOMAIN hinzuzufügen. Um alles in der gleichen Datenbank sitzen zu lassen, ändere ich einfach base("DefaultConnection")
zu dem, was der Name meiner Verbindungszeichenfolge in meiner anderen DbContext
Klasse ist, die sich im Ordner [Context] befindet?
Ich möchte, dass alle meine Entitäten, die diese Anwendung steuern, in einer Datenbank sitzen.
Danke SilverFox. Wenn ich darüber nachdenke, muss ich den 'ApplicationDbContext' hinzufügen, wenn ich bereits einen' BBContext' habe? Warum sollte ich 2 Kontexte brauchen? Oder ist es ein Muss für die Authentifizierung? – Ciwan
Nun, 'ApplicationDbContext' wurde von' ApplicationUserManager' zum Speichern von Benutzerdaten verwendet. Wenn Sie es in 'BBContext' zusammenführen möchten, vergewissern Sie sich, dass alle Verwendungen auf' BBContext' gesetzt sind. – silverfox
danke, oder ich kann es behalten und sage es nur, um die gleiche Verbindungszeichenfolge wie mein anderer Kontext richtig zu verwenden? – Ciwan