How to specify two navigation properties from enti

2019-03-03 22:05发布

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?

2条回答
我只想做你的唯一
2楼-- · 2019-03-03 22:46

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; }
}
查看更多
Animai°情兽
3楼-- · 2019-03-03 23:05

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.

查看更多
登录 后发表回答