【发布时间】:2018-04-27 22:56:41
【问题描述】:
This article 显示下表示例:
public class Course
{
public int CourseId { get; set; }
public string CourseName { get; set; }
public string Description { get; set; }
[ForeignKey("OnlineTeacher")]
public int? OnlineTeacherId { get; set; }
public Teacher OnlineTeacher { get; set; }
[ForeignKey("ClassRoomTeacher")]
public int? ClassRoomTeacherId { get; set; }
public Teacher ClassRoomTeacher { get; set; }
}
public class Teacher
{
public int TeacherId { get; set; }
public string Name { get; set; }
[InverseProperty("OnlineTeacher")]
public ICollection<Course> OnlineCourses { get; set; }
[InverseProperty("ClassRoomTeacher")]
public ICollection<Course> ClassRoomCourses { get; set; }
}
我发现我可以删除 [ForeignKey(*)] 属性,它们仍然可以在 Courses 表中正确创建。但是,如果我同时删除 [InverseProperty] 属性,EF 在我构建时会引发错误。仅like the foreign keys 是否有命名约定?我的目标是严格遵循命名约定并减少基于属性/流利的配置的数量。
【问题讨论】:
-
您可以使用
nameof做得更好,例如[InverseProperty(nameof(Course.ClassRoomTeacher))]