Ich habe ein Problem mit ich ein benutzerdefiniertes Feld in UserProfile
table.likeAsp.net Mvc 4 wie WebSecurity.createUserAndAccount verwenden, um mit benutzerdefinierten Feld
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public int? AddressId { get; set; }
public int? UserDetailId { get; set; }
public string UserName { get; set; }
public UserDetail UserDetail { get; set; }
}
public class RegisterModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
public virtual UserDetail UserDetail { get; set; }
}
public class UserDetail
{
public int Id{get;set;}
public string FirstName{get;set;}
public string LastName{get;set;}
}
erstellen Und ich fügte auch UserDetail
-DbContext
Klasse
public DbSet<UserDetail> UserDetails{get;set;}
Das Problem ist, wenn ich
Web WebSecurity.CreateUserAndAccount(model.UserName, model.Password,
new { UserDetail = new UserDetail()
}, false);
Es verwenden ALW Ays kommt mit einem Fehler wie: Keine Zuordnung existiert vom Objekttyp ... Aber wenn ich einen einfachen Typ (wie string
, int
) anstelle von UserDetail
definieren, funktioniert es gut.
Kann mir jemand helfen, dieses Problem zu lösen? Vielen Dank!!
ich teste den Code, aber es sagt mein Kontext keine Definition für Userprofile oder für Userdetails enthalten! Sollen wir unserem db-Kontext etwas hinzufügen? Ich stecke auch damit fest! – Ciwan
@Ciwan siehe Bearbeiten in der Antwort – Komengem
Danke, ich habe es geschafft, über das Problem, das ich hatte, zu bekommen, aber ich bekomme 'null' in dieser Zeile' var userProfile = Kontext.UserProfiles.SingleOrDefault (u => u.UserName == model.UserName); 'irgendeinen Grund dafür? Wenn ich Db überprüfe, wurde der Benutzername erstellt, aber die Tabelle UserDetails ist leer, offensichtlich weil diese Zeile null zurückgibt. – Ciwan