09.11.2018

C#: Реализация Many-To-Many в Entity Framework 6

Пускай у нас будут две модели Articles (статьи) и Authors (авторы статей). У статей может быть несколько авторов, а авторы могут участвовать в написании нескольких статей. Ниже представлен шаблон для реализации конструкции связей Many-To-Many в Entity Framework 6, например, его можно использовать в рамках концепции Code-First для автоматического создания таблиц связей.

public class Article
{
    public int Id { get; set; }

    public string Title { get; set; }

    public string Surname { get; set; }

    public virtual ICollection Authors { get; set; }

    public Article()
    {
        Authors = new List();
    }
}

public class Author
{
    public int Id { get; set; }

    public string Fio { get; set; }

    public virtual ICollection  Articles { get; set; }
public Author() { Articles = new List();
} } public class Arctiles2AuthorsContext : DbContext { public DbSet Authors { get; set; }
public DbSet Articles { get; set; } public Arctiles2AuthorsContext() : base("DefaultConnection") { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity().HasMany(c => c.Articles) .WithMany(s => s.Authors) .Map(t => t.MapLeftKey("ArticleId") .MapRightKey("AuthorId") .ToTable("Arctiles2Authors")); } }

Комментариев нет:

Отправить комментарий