Tôi có một vấn đề với tôi tạo ra một lĩnh vực tùy chỉnh trong UserProfile
table.likeAsp.net MVC 4 làm thế nào để sử dụng WebSecurity.createUserAndAccount với lĩnh vực tùy chỉnh
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;}
}
Và tôi cũng nói thêm UserDetail
-DbContext
lớp
public DbSet<UserDetail> UserDetails{get;set;}
vấn đề là khi tôi sử dụng
Web WebSecurity.CreateUserAndAccount(model.UserName, model.Password,
new { UserDetail = new UserDetail()
}, false);
Nó ALW ays đi kèm với một số lỗi như: Không có ánh xạ tồn tại từ loại đối tượng ... Nhưng nếu tôi xác định một loại đơn giản (như string
, int
) thay vì UserDetail
, nó hoạt động tốt.
Bất cứ ai cũng có thể giúp tôi giải quyết vấn đề này? Cảm ơn rất nhiều!!
tôi đang thử nghiệm ra mã của bạn, nhưng nó nói bối cảnh của tôi không chứa một định nghĩa cho UserProfile hoặc cho UserDetails! Có phải chúng ta giả sử thêm một cái gì đó vào bối cảnh db của chúng ta không? Tôi đang mắc kẹt với điều này quá! – Ciwan
@Ciwan xem chỉnh sửa trong câu trả lời – Komengem
Cảm ơn, tôi quản lý để vượt qua vấn đề tôi đã có, tuy nhiên tôi nhận được 'null' trên dòng này' var userProfile = context.UserProfiles.SingleOrDefault (u => u.UserName == model.UserName); 'bất kỳ lý do nào cho điều này? Khi tôi kiểm tra Db, tên người dùng đã được tạo, nhưng bảng UserDetails trống, rõ ràng là vì dòng đó trả về null. – Ciwan