2014-02-26 28 views
0

我有兩個具有一對一映射的表。但共享主鍵名稱應該不同。想要映射一對一關係實體框架但共享主鍵名稱

下面是表

public class User 
{ 

    public Guid Id { get; set; } 
    public Guid LicenseGuid { get; set; } 
    public string UserID { get; set; } 
    public int Sequence { get; set; } 
    public UserLogin UserLogin { get; set; } 
} 

和共享主鍵的其他表將

public class UserLogin 
{ 
    public Guid UserId { get; set; } 
    public User User { get; set; } 
} 

現在如何與標識創建共享主鍵 - >中的EntityFramework 6用戶ID 我曾嘗試這樣做

builder.Entity<UserLogin>() 
      .HasRequired(x => x.User).WithRequiredDependent(); 

但它不僅創建UserId作爲共享密鑰,但也會在UserLogins上創建User_id表,這是不理想的。我怎麼能只有一個UserId作爲共享主鍵與表User與主要共享密鑰IdUserId共享密鑰在表UserLogin表。

回答

0

我覺得代碼可以解決你的問題

public class User{ 
     public Guid Id { get; set; } 
     public Guid LicenseGuid { get; set; } 
     public string UserID { get; set; } 
     public int Sequence { get; set; } 
     [ForeignKey("Id")] 
     public UserLogin UserLogin { get; set; } 
    } 




public class UserLogin 
{ 
    public Guid UserId { get; set; } 
    [ForeignKey("UserId ")] 
    public User User { get; set; } 
} 

,但我認爲你可以做這樣的

public class User{ 
     public Guid Id { get; set; } 
     public Guid LicenseGuid { get; set; } 
     public string UserID { get; set; } 
     public int Sequence { get; set; } 

    } 
public class UserLogin:User{ 
// other property 
} 
+0

我以爲面前。但那實際上是多餘的數據。我不希望所有用戶信息進入登錄表,因爲登錄表只包含登錄信息 – Joy