2011-12-16 103 views
0

我有一個奇怪的現象Ef中的代碼首先映射

我有3個實體:

public class Product 
{ 
    public virtual int id {get;set;} 
} 

public class Media 
{ 
    public virtual ICollection<MediaProduct> mediaProducts {get;set;} 
} 

public class MediaProduct 
{ 
    public virtual int id {get;set;} 
    public virtual Media media {get;set;} 
    public virtual Product product {get;set;} 

    public virtual int productId { get; set; } 
    public virtual int mediaId { get; set; } 
} 

正如你可以在我的產品實體見我沒有MediaProduct一個參考,我可以」改變這一點。

我不知道如何映射這些實體。

我的映射類是

public class MediaProcutMap : EntityTypeConfiguration<MediaProduct> 
    { 
     public MediaProcutMap() 
     { 
      this.ToTable("Media_Product_Mapping"); 
      this.HasKey(pc => pc.Id); 

      this.HasRequired(pc => pc.media) 
       .WithMany(c => c.mediaProducts) 
       .HasForeignKey(pc => pc.mediaId); 

      //this.HasRequired(pc => pc.product) ???     
     } 
    } 

,但它不工作

請幫我

馬爾科

回答

1

有不採取的WithMany過載參數。

public class MediaProcutMap : EntityTypeConfiguration<MediaProduct> 
{ 
     public MediaProcutMap() 
     { 
      this.ToTable("Media_Product_Mapping"); 
      this.HasKey(pc => pc.Id); 

      this.HasRequired(pc => pc.media) 
       .WithMany(c => c.mediaProducts) 
       .HasForeignKey(pc => pc.mediaId); 

      this.HasRequired(pc => pc.product). 
       .WithMany() 
       .HasForeignKey(pc => pc.productId);    
     } 
} 
+0

嗨Eranga,感謝您的幫助,但它仍然給我同樣的錯誤:無法確定各類 – 2011-12-16 15:50:47