Обьясните, пожалуйста, максимально простыми словами, в чем же разница между [InverseProperty]
и [ForeignKey]
, ведь оба атрибута устанавливают однозначную связь между сущностями Entity FW
. Так когда лучше использовать первый, а когда второй атрибут?
ForeignKey
- используются когда две сущности имеют одну связь.
[InverseProperty]
- когда таких связей несколько, думаю не так уж часто такое происходит, но к примеру в документации рассматривается ситуация связи сущностей Учитель - Курс. Конкретно там появляется две таблицы одинаковых сущностей - онлайн курсы и курсы в классе. Возникает такая ситуация. На мой взгляд она несколько надуманная, ну да ладно.
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; }
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Всем приветСтоит задача получить название вводимого адреса сайта в адресную строку браузера
Делаю программу для парсинга текста из файловПрограмма для анкетирования