Entity Framework以資料庫的概念來解釋比較容易理解,它會建立不同的class,這個class裡面只會有屬性(使用DTO)

比如下例

public class Student
    {
        public int ID { get; set; }
        public string LastName { get; set; }
        public string FirstName { get; set; }
        public DateTime EnrollmentDate { get; set; }
        public virtual ICollection<Enrollment> Enrollments { get; set; }
    }

public class Enrollment
    {
        public int EnrollmentID { get; set; }
        public int CourseID { get; set; }
        public int StudentID { get; set; }
        public Grade? Grade { get; set; }

        public virtual Course Course { get; set; }
        public virtual Student Student { get; set; }
    }

而通常屬性是對應到資料庫裡的欄位的

在橘色區塊是相對應的,它就是我們所說的導覽屬性,類代資料庫裡的關連性,在Student裡的Enrollments的型別是ICollection<Enrollment>,表示它是集合類別,也就是Student對Enrollment是一對多的狀態.

而黃色的部分則是述敍Enrollment中的Student是導覽屬性,因為它是Student型態,而這種關係就是一對一的狀態.

另外在EF中它會根據屬性的命名,將該屬性視為外部鍵值,以例子說明

Student類別的primary key是ID,那Enrollment類別中只要有(類別名+primary key),就會被視為外部鍵值

或者 Student類別的primary key假設是StudentID,那Enrollment中只要有StudentID就會被視為外部鍵值

1. 類別名+ primary key是ID

2. primary key 本身就是(類別名+ID)

視為外部鍵值

 

arrow
arrow

    痞客興 發表在 痞客邦 留言(0) 人氣()