ich genau dies auf einer Reihe getan habe von Projekten
Zum Beispiel habe ich eine eins zu viele Beziehung von ASPNetUsers zu Benachrichtigungen. Also in meinem ApplicationUser Klasse in IdentityModels.cs ich habe
public virtual ICollection<Notification> Notifications { get; set; }
Meine Benachrichtigungen Klasse die Rückseite hat
public virtual ApplicationUser ApplicationUser { get; set; }
standardmäßig EF wird dann eine Kaskade von Benachrichtigung löschen AspNetUsers erstellen, die möchte ich nicht - so ich habe auch in meiner Kontextklasse
modelBuilder.Entity<Notification>()
.HasRequired(n => n.ApplicationUser)
.WithMany(a => a.Notifications)
.HasForeignKey(n => n.ApplicationUserId)
.WillCascadeOnDelete(false);
einfach die Definition für AspNetUSers erinnern innerhalb IdentityModels.cs in der ApplicationUser Klasse erweitert Das wird für Sie von Visual Studios Gerüste generiert. Dann behandeln sie wie jede andere Klasse/Tabelle in Ihrer App
UPDATE - hier sind Beispiele für Voll Modelle
public class ApplicationUser : IdentityUser
{
[StringLength(250, ErrorMessage = "About is limited to 250 characters in length.")]
public string About { get; set; }
[StringLength(250, ErrorMessage = "Name is limited to 250 characters in length.", MinimumLength=3)]
public string Name { get; set; }
public DateTime DateRegistered { get; set; }
public string ImageUrl { get; set; }
public virtual ICollection<Notification> Notifications { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
public class Notification
{
public int ID { get; set; }
public int? CommentId { get; set; }
public string ApplicationUserId { get; set; }
public DateTime DateTime { get; set; }
public bool Viewed { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
public virtual Comment Comment { get; set; }
}
}
Ich gehe davon aus, dass Sie Code ersten Ansatz verwenden. Was ich bevorzuge ist versuchen, eine edmx für die Datenbank zu generieren und dann in die Klassen für die Tabelle aspnetuser generiert auch zu sehen, Sie werden die Idee bekommen. Erstellen Sie zuerst eine Beziehung zur benutzerdefinierten Tabelle sowie auf db-Ebene selbst. –
@meajaygoel kann ich Ihnen bitte eine Art Code fragen? – SergioPetrarca
http://www.itorian.com/2013/11/customizing-users-profile-to-add-new.html –