How to handle a many to many relationship with an ORM mapped to a Domain Model when there are no technical constraints?

Domain Driven Design states that you should have a domain model, which reflects the ubiquitious language used by the domain experts. When using ORMs and many to many relationships I am use to doing this:

public class Student {     public Student()      {         this.Courses = new HashSet<Course>();     }      public int StudentId { get; set; }     [Required]     public string StudentName { get; set; }      public virtual ICollection<Course> Courses { get; set; } }  public class Course {     public Course()     {         this.Students = new HashSet<Student>();     }      public int CourseId { get; set; }     public string CourseName { get; set; }      public virtual ICollection<Student> Students { get; set; } } 

However, with EF Core you must create a join class as described here: In the case of the above; I would have to create a class called: StudentCourse.

What is the most appropriate way to map an ORM to a Domain Model assuming there are no technical constraints like with EF Core were you must currently have a join class? My thinking is:

1) If the join table has state and behaviour then use a join class.

2) If the join table has a name that is recognised by domain experts then use a join class e.g. a Person could be eligible for loans – here Eligibility is the join class and is a term recognised by the domain. In the case of the above; StudentCourse is not recognised by the domain.

3) Else don’t use a join class (like in the example above).