entity structure – Multiple join table ID EF

I've studied the possibility of using EF Core with multiple relationships.
If you google, you basically see the same solution everywhere.

You basically get 3 classes, one representing the join table. And you need a configuration code because EF Core can not solve it itself.

public class book
{
public int BookId {get; together; }
public string Title {get; together; }
public Author Author {get; together; }
ICollection public BookCategories {get; together; }
}
Public class Category
{
public int CategoryId {get; together; }
public string CategoryName {get; together; }
ICollection public BookCategories {get; together; }
}
Public class BookCategory
{
public int BookId {get; together; }
public book book {get; together; }
public int CategoryId {get; together; }
public Category Category {get; together; }
// NOT IN ALL EXAMPLES: public int ID {get; together;}
}

Some configurations use only the first 2 lines of the following.

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);

Now, what I've done is just to give the object of the join table its own property ID. So, it looks more like the tables I'm building from habit. This leads me in one way or another to not need any configuration.
The tables look correct, the entities are stored correctly, I can query them correctly.

While I miss it?