[英]Are there any naming conventions for multiple inverse properties in EF Core or are attributes necessary?
本文顯示了下表示例:
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表上正確創建它們。 但是,如果刪除BOTH [InverseProperty]
屬性,則在構建時EF會引發錯誤。 是否有像外鍵一樣的命名約定? 我的目標是緊密遵循命名約定,並減少基於屬性/流利的配置的數量。
如果刪除BOTH [InverseProperty]屬性,則在構建時EF拋出錯誤。 是否有與外鍵一樣的命名約定?
當兩個實體之間存在許多相同類型(例如一對多)的關聯時,EF 沒有定義命名約定 。
例如,當您在EntityA
和EntityB
之間EntityA
一種關聯時。 假設它在EntityA
和EntityB
之間存在1-to- *關系,當您遵守約定時,它會很好地工作。 但是,當您在EntityA
和EntityB
之間放置另一個1-to *關系時,EF將需要您的幫助來了解關聯之間的關系。 因此,您必須使用InverseProperty
數據注釋屬性或通過流暢的配置定義完整的關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.