2017-10-29 203 views
0

我已將我的Aspnetusers表擴展爲包括FirstName,MiddleName,LastName,StudentID如何在我的Aspnetusers表和自定義表之間建立關係?

我想要一個簡單的註冊頁面,其中管理員將創建學生帳戶。那麼學生賬戶 可以添加他們自己的個人聯繫方式。現在

,我創建了一個包含了FF命名"ContactDetails"自定義表:

public class Contact 
{ 
    [Key] 
    [Display(Name = "User Name")] 
    public string UserName { get; set; } 

    [Display(Name = "Contact Number")] 
    public string StudentContactNumber { get; set; } 

    [Display(Name = "Mother First Name")] 
    public string MotherFirstName { get; set; } 
    [Display(Name = "Mother Middle Name")] 
    public string MotherMiddleName { get; set; } 
    [Display(Name = "Mother Last Name")] 
    public string MotherLastName { get; set; } 
    [Display(Name = "Mother Contact Number")] 
    public string MotherContactNumber { get; set; } 

    [Display(Name = "Father First Name")] 
    public string FatherFirstName { get; set; } 
    [Display(Name = "Father Middle Name")] 
    public string FatherMiddleName { get; set; } 
    [Display(Name = "Father Last Name")] 
    public string FatherLastName { get; set; } 
    [Display(Name = "Father Contact Number")] 
    public string FatherContactNumber { get; set; } 

    [Display(Name = "Emergency First Name")] 
    public string EmergencyFirstName { get; set; } 
    [Display(Name = "Emergency Middle Name")] 
    public string EmergencyMiddleName { get; set; } 
    [Display(Name = "Emergency Last Name")] 
    public string EmergencyLastName { get; set; } 
    [Display(Name = "Emergency Contact Number")] 
    public string EmergencyContactNumber { get; set; } 


    public virtual ApplicationUser User { get; set; } 

} 

IdentityModels類:

public class ApplicationUser : IdentityUser 
{ 
    public string FirstName { get; set; } 
    public string MiddleName { get; set; } 
    public string LastName { get; set; } 
    public string StudentID { get; set; } 
    public string College { get; set; } 

    public virtual System.Collections.Generic.ICollection<Contact> ContactInfo { get; set; } 

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) 
    { 

     var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 

     return userIdentity; 
    } 


} 

我怎麼把我的用戶(Aspnetusers.Id)在ContactDetails (User_Id)表當學生已登記? 我如何在它們之間建立關係?

我AdminController:

// GET: /Admin/Edit/Create 
    [Authorize(Roles = "Administrator")] 
    #region public ActionResult Create() 
    public ActionResult Create() 
    { 
     ExpandedUserDTO objExpandedUserDTO = new ExpandedUserDTO(); 

     ViewBag.Roles = GetAllRolesAsSelectList(); 

     return View(objExpandedUserDTO); 
    } 
    #endregion 

    // PUT: /Admin/Create 
    [Authorize(Roles = "Administrator")] 
    [HttpPost] 
    [ValidateAntiForgeryToken] 
    #region 
    public ActionResult Create(ExpandedUserDTO paramExpandedUserDTO) 
    { 
     try 
     { 
      if (paramExpandedUserDTO == null) 
      { 
       return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
      } 

      var Email = paramExpandedUserDTO.Email.Trim(); 
      var UserName = paramExpandedUserDTO.Email.Trim(); 
      var Password = paramExpandedUserDTO.Password.Trim(); 
      // 
      var FirstName = paramExpandedUserDTO.FirstName.Trim(); 
      var MiddleName = paramExpandedUserDTO.MiddleName.Trim(); 
      var LastName = paramExpandedUserDTO.LastName.Trim(); 
      var StudentID = paramExpandedUserDTO.StudentID.Trim(); 
      var College = paramExpandedUserDTO.College.Trim(); 


      // UserName is LowerCase of the Email 
      UserName = Email.ToLower(); 

      // Create user 

      var objNewAdminUser = new ApplicationUser { UserName = UserName, Email = Email, FirstName = FirstName, MiddleName = MiddleName, LastName = LastName, StudentID = StudentID, College = College };    


      var AdminUserCreateResult = UserManager.Create(objNewAdminUser, Password); 

      if (AdminUserCreateResult.Succeeded == true) 
      { 
       string strNewRole = Convert.ToString(Request.Form["Roles"]); 

       if (strNewRole != "0") 
       { 
        // Put user in role 
        UserManager.AddToRole(objNewAdminUser.Id, strNewRole); 
       } 

       return Redirect("~/Admin"); 
      } 
      else 
      { 
       ViewBag.Roles = GetAllRolesAsSelectList(); 
       ModelState.AddModelError(string.Empty, "Error: User "+Email+ " already exists!"); 
        //"Error: Failed to create the user. Check password requirements."); 

       return View(paramExpandedUserDTO); 
      } 
     } 
     catch (Exception ex) 
     { 
      ViewBag.Roles = GetAllRolesAsSelectList(); 
      //ModelState.AddModelError(string.Empty, "Error: " + ex); 
      return View("Create"); 
     } 
    } 
    #endregion 

林不知道我該如何繼續?提前致謝。

回答

0

Contact類,你應該有這些:

public int UserId { get; set; } 
public virtual ApplicationUser User { get; set; } 

ApplicationUser類,你應該有這些:

public int ContactId { get; set; } 
public virtual Contact Contact { get; set; } 
相關問題