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; }