2014-05-13 2 views
0

사용자 프로필 데이터 (성, 성 등)에 대해 별도의 테이블이 있으므로 ID를 설정했습니다.
문제는 내가 Email 필드를 통해 해당 테이블에 가입 한 것입니다.
대신 테이블을 UserID으로 연결할 수 있도록 이것을 변경하고 싶습니다.
내가 생성 한 사용자에 대해 userID을 새로 가져와 UserProfileInfo 개체의 외래 키로 사용하는 것이 좋습니다. 나는 새 사용자를 만들 때Identity 프레임 워크 - 사용자 ID별로 다른 프로필 테이블에 가입하는 방법

public class ApplicationUser : IdentityUser<int, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim> 
{ 
    public string Email { get; set; } 
    public string ConfirmationToken { get; set; } 
    public bool IsConfirmed { get; set; } 
    public virtual UserProfileInfo UserProfileInfo { get; set; } 
} 

public class UserProfileInfo 
{ 
    public int Id { get; set; } 
    public string EmailId { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

내가 가진 :

var user = new ApplicationUser() 
{ 
    UserName = model.UserName, 
    Email = model.Email, 
    ConfirmationToken = confirmationToken, 
    IsConfirmed = false, 
    UserProfileInfo = new UserProfileInfo { EmailId = model.Email } 
}; 

var result = await UserManager.CreateAsync(user, model.Password); 
if (result.Succeeded) 
{ 
    SendEmailConfirmation(model.Email, model.UserName, confirmationToken); 
    return RedirectToAction("RegisterStepTwo", "Account"); 
} 
else... 

답변

3

왜 당신이이 처음에 가입하는거야? ApplicationUser은 사용자가이고 IdentityUser에서 상속하는 전체 요점은 사용자 개체를 확장하는 것입니다. FirstNameLastName과 같은 속성을 ApplicationUser에 직접 붙여 넣기 만하면됩니다.

+1

'profile' 데이터와'account' 데이터를 구분합니다. 하나의 테이블에 모든 것을 넣는 것은 나쁜 습관입니까? 그러면 ApplicationUser에 최대 15 개의 열을 추가 할 수 있습니다. – 1110

+0

계정 데이터와 프로필 데이터를 분리 할 이유가 없으며 하나의 테이블에 모두 포함시키는 것이 바람직하지 않습니다. 그래도 정상화에주의를 기울이십시오. Facebook 용 인증 토큰과 같이 모든 사용자에게 적용 할 수없는 데이터의 경우 'ApplicationUser'에 대한 소유권이 아닌 소유권 주장이어야합니다. –

관련 문제