2011-05-20 21 views
0

讓我們用一個簡單的例子:您可以使用EF 4.1流利API在外鍵中使用導航子屬性嗎?

public class Employee 
{ 
    public int EmployeeID { get; set; } 
    public ICollection<Pay> Pays { get; set; } 
} 

public class Pay 
{ 
    public Employee Employee { get; set; } 
    public int Year { get; set; } 
    public double Amount { get; set; } 
} 

有沒有辦法用流利的API來創建一個Employee_EmployeeID, Year自付表的主鍵(使用EF4.1柱公約)?

我不希望使用數據的註釋,但我想這無論如何:

public class Pay 
{ 
    [Key, Column(Order = 0)] 
    public Employee Employee { get; set; } 
    [Key, Column(Order = 1)] 
    public int Year { get; set; } 
    public double Amount { get; set; } 
} 

所有這一切讓我是在Year主鍵和Employee_EmployeeID外鍵雖然。

回答

0

這將是唯一可能的,如果你還FK屬性添加到您的Pay

modelBuilder.Entity<Pay>() 
      .HasKey(p => new 
       { 
        p.EmployeeId, 
        p.Year 
       }); 

你需要員工的FK作爲一個屬性:

public class Pay 
{ 
    public int EmployeeId { get; set; } 
    public Employee Employee { get; set; } 
    public int Year { get; set; } 
    public double Amount { get; set; } 
} 

現在你可以用流利的API映射它如果你想讓它成爲PK的一部分。

+0

這很完美,謝謝! – 2011-05-20 13:31:50

相關問題