Ef code first Mapping - PullRequest
       4

Ef code first Mapping

0 голосов
/ 16 декабря 2011

У меня странная ситуация

У меня есть 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) ???                
        }
    }

но это не работает

пожалуйста, помогите мне

Marco

1 Ответ

1 голос
/ 16 декабря 2011

Существует перегрузка 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);              
        }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...