У меня есть проблема с создать настраиваемое поле в UserProfile
table.likeAsp.net MVC 4, как использовать WebSecurity.createUserAndAccount с настраиваемым полем
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;}
}
И я также добавил UserDetail
в DbContext
классе
public DbSet<UserDetail> UserDetails{get;set;}
Проблема заключается в том, когда я использую
Web WebSecurity.CreateUserAndAccount(model.UserName, model.Password,
new { UserDetail = new UserDetail()
}, false);
это ALW ays появляется с некоторой ошибкой вроде: Отсутствует сопоставление типа объекта ... Но если я задаю простой тип (например, string
, int
) вместо UserDetail
, он отлично работает.
Кто-нибудь может помочь мне решить эту проблему? Огромное спасибо!!
Я проверяю свой код, но он говорит, что мой контекст не содержит определения для UserProfile или UserDetails! Предположим ли мы добавить что-то в наш контекст db? Я тоже застрял! – Ciwan
@Ciwan см. В ответе – Komengem
Спасибо, мне удалось преодолеть проблему, с которой я столкнулся, однако я получаю 'null' в этой строке' var userProfile = context.UserProfiles.SingleOrDefault (u => u.UserName == model.UserName); 'любая причина для этого? Когда я проверяю Db, имя пользователя создано, но таблица UserDetails пуста, очевидно, потому что эта строка возвращает null. – Ciwan