1

我使用ASP.Net身份2.我創建一個用戶如下:當創建與ASP.Net身份2新行新的用戶插入到父表

public class User : IdentityUser<int, CustomUserLogin, CustomUserRole, CustomUserClaim> 
{ 
    public virtual Agency Agency { get; set; } 

    public string FirstName { get; set; } 

    public string LastName { get; set; } 
} 

用戶的一個構件代理商:

public class Agency 
{ 

    public int Id { get; set; } 

    public string Name { get; set; } 

    public string TaxId { get; set; } 

    public List<User> Brokers { get; set; } 
} 

用戶與代理商有一對多的關係。當我創建用戶時,我將從數據庫中檢索代理,然後將Agency設置爲User。這是事情出錯的地方。

  var manager = Identity.GetUserManager(); 
      manager.Create(new User() 
      { 
       UserName = "chuckconway", 
       Email = "[email protected]", 
       FirstName = "Chuck", 
       LastName = "Conway", 
       Agency = agency 

      }, "123"); 

而不是引用該機構並插入主鍵進入用戶表,ASP.NET身份插入一個新的機構記錄到代理表並使用它的ID與新創建的用戶。我結束了兩個機構...

回答

3

通常爲一到許多EF關係你想擁有引用表中包含的導航屬性的ID(外鍵),像這樣:

public class User : IdentityUser<int, CustomUserLogin, CustomUserRole, CustomUserClaim> 
{ 
    public int AgencyId { get; set; } //new 
    public virtual Agency Agency { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

然後插入/用戶創建過程中使用AgencyId,如從數據庫檢索AgencyID並將其分配給User

+0

謝謝,我給一個嘗試。 –