[entity framework core] Entity Framework Core Many To Many Relationships

https://www.learnentityframeworkcore.com/configuration/many-to-many-relationship-configuration

目前无法使用 convention 来实现 many to many. 所以只能用 fluent api.

entity design in ef core for many to many relationship:

    public class Book
    {
        public int BookId { get; set; }
        public string Title { get; set; }
        public Author Author { get; set; }
        public ICollection BookCategories { get; set; }
    }  
    public class Category
    {
        public int CategoryId { get; set; }
        public string CategoryName { get; set; }
        public ICollection BookCategories { get; set; }
    }  
    public class BookCategory
    {
        public int BookId { get; set; }
        public Book Book { get; set; }
        public int CategoryId { get; set; }
        public Category Category { get; set; }
    }

pay more attention on the entity : BookCategory, we need this as a bridging between book and category entity.

let's see the details of OnModelCreating:

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity()
            .HasKey(bc => new { bc.BookId, bc.CategoryId });  
        modelBuilder.Entity()
            .HasOne(bc => bc.Book)
            .WithMany(b => b.BookCategories)
            .HasForeignKey(bc => bc.BookId);  
        modelBuilder.Entity()
            .HasOne(bc => bc.Category)
            .WithMany(c => c.BookCategories)
            .HasForeignKey(bc => bc.CategoryId);
    }

你可能感兴趣的:([entity framework core] Entity Framework Core Many To Many Relationships)