簡體   English   中英

EF Core中是否有多個逆屬性的命名約定,或者屬性是必需的?

[英]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 沒有定義命名約定

例如,當您在EntityAEntityB之間EntityA一種關聯時。 假設它在EntityAEntityB之間存在1-to- *關系,當您遵守約定時,它會很好地工作。 但是,當您在EntityAEntityB之間放置另一個1-to *關系時,EF將需要您的幫助來了解關聯之間的關系。 因此,您必須使用InverseProperty數據注釋屬性或通過流暢的配置定義完整的關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM