[C#] EntityFramework中的導覽屬性略講

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)

視為外部鍵值

 

Comments |0|

Legend *) Required fields are marked
**) You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Category: 來玩C#