Ich habe eine einfache ASP.Net-Anwendung mit einer Datenbank aus Tabellen wie Klassen, Eltern, Schüler, Fächer und Lehrer erstellt.ASP.NET Benutzeranmeldung
Es gibt zwei Entitäten, die mit dieser Anwendung interagieren, indem sie sich anmelden und die Lehrer und Eltern werden.
Meine Frage ist, wie verknüpfe ich die Lehrer in meiner Teachers-Tabelle, anstatt jeden neuen Benutzer zu speichern, der sich in der AspNetUsers-Tabelle registriert, die mit AspNetIdentity geliefert wird.
Sobald ein Lehrer/Eltern sich anmeldet, möchte ich Details zu diesem Lehrer/Elternteil anzeigen können. Wenn sich zum Beispiel ein Lehrer anmeldet, möchte ich alle Klassen zeigen, die er/sie unterrichtet, die ich aus der Datenbank abrufe.
Ich bin neu in ASP.NET MVC, also ich appologies wenn ich etwas sehr offensichtliche frage. Jede Hilfe wird erteilt.
UPDATE
Ok so, nachdem der von Chris Vorschlag aus dem ApplicationUser erben konnte ich meine Datenbank aktualisieren, und ich habe jetzt die folgende Struktur für meine Datenbank.
Jetzt bin ich ein wenig verwirrt darüber, wo die Eltern und Lehrer Tabellen sind und wie genau werde ich diese Objekte aus der Datenbank abgerufen werden, wenn sie alle in einer Tabelle „AspNetUsers“.
UPDATE 2
So habe ich dieses Stück Code in meiner Account
public AccountController()
: this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())))
{
}
public AccountController(UserManager<ApplicationUser> userManager)
{
UserManager = userManager;
}
public UserManager<ApplicationUser> UserManager { get; private set; }
Und das ist, was die Register() -Methode wie folgt aussehen:
if (ModelState.IsValid)
{
var user = new ApplicationUser() { UserName = model.UserName, FirstName = model.FirstName, LastName = model.LastName };
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
var Teacher = new Teacher
{
UserName = model.UserName,
FirstName = model.FirstName,
LastName = model.LastName,
};
// Add the Address properties:
user.UserName = model.UserName;
user.FirstName = model.FirstName;
user.LastName = model.LastName;
var roleStore = new RoleStore<IdentityRole>(new ApplicationDbContext());
var roleManager = new RoleManager<IdentityRole>(roleStore);
await roleManager.CreateAsync(new IdentityRole("Teacher"));
await UserManager.AddToRoleAsync(user.Id, "Teacher");
await SignInAsync(user, isPersistent: false);
return RedirectToAction("Index", "Home");
}
refering zu Chris Kommentar Wie richte ich eine Instanz von ApplicationUserManager ein, wenn sich ein neuer Benutzer als neuer Teacher registriert?
Hier gibt es keine dummen Fragen. Sie haben eine sehr gute Frage gestellt. – RBT