2011-12-16 162 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