2010-10-29 57 views
1

我有一個POCO類映射到表,基本上包含三個主鍵如下:EF POCO - 無法推斷實體類型的鍵?

public class ContactProjectSite 
    { 
     public int ContactID { get; set; } 
     public int ProjectID { get; set; } 
     public int SiteID { get; set; } 

     public virtual Contact Contact { get; set; } 
     public virtual Project Project { get; set; } 
     public virtual Site Site { get; set; } 
    } 

下面是繼承的DbContext類的類,覆蓋OnModelCreating方法:

public class TLI : DbContext 
{ 
    public DbSet<ContactProjectSite> ContactsProjectSite { get; set; } 
    protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<ContactProjectSite>().MapSingleType(cps => new 
     { 
      cpcid = cps.ContactID, 
      cppid = cps.ProjectID, 
      cpsid = cps.SiteID 
     }).ToTable(new StoreTableName("contacts_ps", "dbo")); 
    } 
} 

然而,當運行這個,我得到這個錯誤:* 無法推斷實體類型'Library.Models.ContactProjectSite'的鍵。 *任何想法爲什麼?

謝謝。

+0

您是否在EDMX中設置了主鍵?您的EDMX驗證? – RPM1984 2010-10-29 05:03:52

+0

由於某種原因,這讓我非常渴望El Pollo Loco。 – Tergiver 2010-11-23 20:30:31

回答

1

您可以應用[Key]屬性來指示當EF無法從名稱/類型中找出哪個屬性是主鍵時。我認爲你可以多次應用它來創建一個組合鍵。

+0

所有這些都是指向其他主鍵的外鍵。我是否必須確保外鍵關係實際設置在表格上?謝謝。 – Saxman 2010-10-29 14:26:34