В свободном API это должно выглядеть примерно так:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Student>()
.HasMany(s => s.FavoriteBooks)
.WithMany();
}
Это создаст таблицу «StudentBooks», чтобы вы могли поддерживать отношения «многие ко многим». Как показывает ваш вопрос, это не отношения один ко многим, поскольку у студента может быть много любимых книг, но каждая книга может быть любимой многими студентами.
Обновление
Ради полноты, вот как вы это сделаете, если у вас уже есть определенная таблица связывания и вам нужно сообщить EF, как выглядит отображение:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Student>()
.HasMany(s => s.FavoriteBooks)
.WithMany();
.Map(cfg => cfg.MapLeftKey("Student_Id")
.MapRightKey("Books_Id")
.ToTable("StudentBooks"));
}