public class Media // One entity table{ public int Id { get; set; } public string Name { get; set; } public bool Enabled { get; set; } public virtual ICollectionContractMedias { get; set; }}public class Contract // Second entity table{ public int Id { get; set; } public string Code { get; set } public virtual ICollection ContractMedias { get; set; }}public class ContractMedia // Association table implemented as entity{ public int MediaId { get; set; } public int ContractId { get; set; } public DateTime StartDate { get; set; } public DateTime EndDate { get; set; } public double Price { get; set; } public virtual ICollection Medias { get; set; } public virtual ICollection Contracts { get; set; }}
And after you created models/entities, you need to define relationships in context:
protected override void OnModelCreating(DbModelBuilder modelBuilder){ modelBuilder.Entity() .HasKey(c => new { c.MediaId, c.ContractId }); modelBuilder.Entity () .HasMany(c => c.ContractMedias) .WithRequired() .HasForeignKey(c => c.ContractId); modelBuilder.Entity () .HasMany(c => c.ContractMedias) .WithRequired() .HasForeignKey(c => c.MediaId); }