2013-02-11 45 views
0

我正在使用默認的aspnet_Membership架構的EF5。實體框架映射一對一Aspnet_Membership表

我有一個自定義用戶對象與引用aspnet_Membership表的外鍵。

在用戶對象的外鍵被稱作「AspnetID」

我需要映射與流暢的API這一個一對一的關係,但我有沒有運氣

對象是這樣的:

public class aspnet_Membership 
{ 
    [Key] 
    public Guid UserId { get; set; } 
    public string Email { get; set; } 
    public DateTime CreateDate { get; set; } 

    public aspnet_Users aspnet_User { get; set; } 
    public User User { get; set; } 
} 

public class User 
{ 
    public int UserID { get; set; } 

    [MaxLength(50)] 
    public string FirstName { get; set; } 

    [MaxLength(50)] 
    public string LastName { get; set; } 

    public Guid AspnetID { get; set; } //This is the foreign key referencing aspnet_Membership 

    public virtual aspnet_Membership Aspnet_Membership { get; set; } 
} 

我已經試過這樣:

modelBuilder.Entity<User>().HasRequired(u => u.Aspnet_Membership).WithOptional(u => u.User); 

但我知道,我需要映射外鍵名稱一些如何...任何想法?

回答

0

您需要使用WithRequiredPricipal()代替WithOptional()

modelBuilder.Entity<User>() 
     .HasRequired(t => t.Aspnet_Membership) 
     .WithRequiredPrincipal(t => t.User); 
+0

我仍然得到這個運行時錯誤:無效的列名稱User_UserID – stephen776 2013-02-12 13:12:38

+0

我需要在用戶對象映射AspnetID到UserID屬性中aspnet_Membership。 EF是否應根據Users表上的外鍵約束來推斷此關係? – stephen776 2013-02-12 13:13:42

+0

此外,每個aspnet_Membership對象都不必與用戶對象相關聯,這個解決方案似乎暗示着......除非我失去了一些東西。但每個用戶都需要一個aspnet_Membership關係 – stephen776 2013-02-12 13:18:10