C# 如何指定从实体X到同一目标实体Y的两个导航属性?

C# 如何指定从实体X到同一目标实体Y的两个导航属性?,c#,entity-framework,code-first,C#,Entity Framework,Code First,假设我有一个讲师课程: public class Instructor { public InstructorTypesEnum Type { get; set; } public virtual ICollection<Course> Courses { get; set; } public virtual ICollection<Course> CoInstructingCourses { get; set; } } 正确的方法是什么?您

假设我有一个
讲师
课程:

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

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

    public virtual ICollection<Course> CoInstructingCourses { get; set; }
}
正确的方法是什么?

您可以使用

在您的模型上,我认为(未验证):

公共课堂讲师
{
公共讲师TypeSenum类型{get;set;}
[逆属性(“讲师”)]
公共虚拟ICollection课程{get;set;}
[反向属性(“共同结构者”)]
公共虚拟ICollection CoInstructingCourses{get;set;}
}

此外,您不应该将GUID用作实体ID。这会影响性能

public Guid InstructorId { get; set; }

试着用int.

来代替它,但是
课程如何?不需要更改?只要指定一次,EF就有足够的信息可以反向运行。您希望讲师和课程之间的关系如何?你只展示你认为不正确的东西。
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; }
}
public Guid InstructorId { get; set; }