0

Consider that I have an Instructor class:

public class Instructor
{
    public InstructorTypesEnum Type { get; set; }

    public virtual ICollection<Course> Courses { get; set; }

    public virtual ICollection<Course> CoInstructingCourses { get; set; }
}

Here, InstructorTypesEnum has two values: instructor and co-instructor. So the two navigation properties Courses and CoInstructingCourses are supposed to return those different courses.

Of course I am also having difficulties specifying the coresponding properties in the Course class

    public Guid InstructorId { get; set; }

    public virtual Instructor Instructor { get; set; }

    public virtual ICollection<Instructor> Coinstructors { get; set; }

What is the correct way to do it?

Kit
  • 20,354
  • 4
  • 60
  • 103
Blaise
  • 21,314
  • 28
  • 108
  • 169
  • 1
    How *exactly* do you want instructors and courses to be related? You only show what you don't think is correct. – Gert Arnold Jun 03 '14 at 20:27

2 Answers2

2

You can use the InversePropertyAttribute

On your model, I think it would be (not verified):

public class Instructor
{
  public InstructorTypesEnum Type { get; set; }

  [InverseProperty("Instructors")]
  public virtual ICollection<Course> Courses { get; set; }

  [InverseProperty("Coinstructors")]
  public virtual ICollection<Course> CoInstructingCourses { get; set; }
}
Kit
  • 20,354
  • 4
  • 60
  • 103
0

What's more - you shouldn't use GUID as entity ID. It hurts performance.

public Guid InstructorId { get; set; }

Try to replace it with for example int.

magos
  • 3,371
  • 4
  • 29
  • 54