Csharp/C#教程:如何指定从实体X到同一目标实体Y的两个导航属性?分享


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

考虑一下我有一个Instructor类:

 public class Instructor { public InstructorTypesEnum Type { get; set; } public virtual ICollection Courses { get; set; } public virtual ICollection CoInstructingCourses { get; set; } } 

这里, InstructorTypesEnum有两个值:讲师和辅导员。 所以两个导航属性CoursesCoInstructingCourses应该返回那些不同的课程。

当然,我也很难在Course类中指定相应的属性

  public Guid InstructorId { get; set; } public virtual Instructor Instructor { get; set; } public virtual ICollection Coinstructors { get; set; } 

这样做的正确方法是什么?

您可以使用InversePropertyAttribute

在你的模型上,我认为它会(未经validation):

 public class Instructor { public InstructorTypesEnum Type { get; set; } [InverseProperty("Instructors")] public virtual ICollection Courses { get; set; } [InverseProperty("Coinstructors")] public virtual ICollection CoInstructingCourses { get; set; } } 

更重要的是 – 您不应该使用GUID作为实体ID。 它会伤害性能。

 public Guid InstructorId { get; set; } 

尝试用例如int替换它。

上述就是C#学习教程:如何指定从实体X到同一目标实体Y的两个导航属性?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1018091.html

(0)
上一篇 2022年1月3日
下一篇 2022年1月3日

精彩推荐