title: Are there any naming conventions for multiple inverse properties in EF Core or are attributes necessary?
body: <p><a href="http://www.entityframeworktutorial.net/code-first/inverseproperty-dataannotations-attribute-in-code-first.aspx" rel="nofollow noreferrer">This article</a> shows the following table example:</p>
  
  <pre><code>public class Course
  {
      public int CourseId { get; set; }
      public string CourseName { get; set; }
      public string Description { get; set; }
  
      [ForeignKey("OnlineTeacher")]
      public int? OnlineTeacherId { get; set; }
      public Teacher OnlineTeacher { get; set; }
  
      [ForeignKey("ClassRoomTeacher")]
      public int? ClassRoomTeacherId { get; set; }
      public Teacher ClassRoomTeacher { get; set; }
  }
  
  public class Teacher
  {
      public int TeacherId { get; set; }
      public string Name { get; set; }
  
      [InverseProperty("OnlineTeacher")]
      public ICollection&lt;Course&gt; OnlineCourses { get; set; }
      [InverseProperty("ClassRoomTeacher")]
      public ICollection&lt;Course&gt; ClassRoomCourses { get; set; }
  }
  </code></pre>
  
  <p>I found that I could remove the <code>[ForeignKey(*)]</code> attributes and they still get created on the Courses table properly. However, if I remove BOTH <code>[InverseProperty]</code> attributes, EF throws an error when i build. Are there naming conventions for this just <a href="https://www.learnentityframeworkcore.com/conventions#foreign-key" rel="nofollow noreferrer">like the foreign keys</a>? My goal is to follow the naming conventions closely and reduce the amount of attribute/fluent based configuration.</p>