beaucoup à beaucoup EF7

Des modèles:

public partial class Film { public int FilmID { get; set; } public virtual ICollection Genres { get; set; } } public class Genre { public int GenreID { get; set; } public virtual ICollection Films { get; set; } } 

OnModelCreating utilisant EF6

 protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity() .HasMany(e => e.Genres) .WithMany(e => e.Films) .Map(m => m.ToTable("Genre_Film").MapLeftKey("Films_IdFilm").MapRightKey("Genres_IdGenre")); } 

J’utilise SQLite. Comment puis-je faire la même chose avec EF7?

La documentation pour EF7 indique comment cela peut être réalisé: http://docs.efproject.net/en/latest/modeling/relationships.html#many-to-many

  modelBuilder.Entity() .HasOne(pt => pt.Post) .WithMany(p => p.PostTags) .HasForeignKey(pt => pt.PostId); 
  modelBuilder.Entity() .HasOne(pt => pt.Tag) .WithMany(t => t.PostTags) .HasForeignKey(pt => pt.TagId); public class PostTag { public int PostId { get; set; } public Post Post { get; set; } public int TagId { get; set; } public Tag Tag { get; set; } } 

L’API de mappage changera dans EF 7. Une API plus intuitive à plusieurs a été proposée. Il y a un mot court sur beaucoup à beaucoup là:

Nous nous attendons à ce que les API plusieurs à plusieurs soient très similaires aux API un à plusieurs et à un.

Mais ce n’est pas encore implémenté dans la source actuelle. Dans un contexte créé pour les tests, il est écrit:

 // TODO: Many-to-many //modelBuilder.Entity().ForeignKeys(fk => fk.ForeignKey(e => e.SupplierId)); 

C’est à peu près tout ce que je peux trouver à ce sujet.

J’espère sûrement que EF7 sera rétro-compatible dans ce domaine.