[Entity Framework][Code First]Many-to-Many Relationships

Code First Many-to-Many Relationships

前言

之前說明過一對多的關係後,要在Code First要產生多對多的關係也是易如反掌,就是都加上ICollection的關係就好啦。如下:

public class Activity
{
    public int ActivityId { get; set; }

    public string Name { get; set; }

    public ICollection<Student> Students { get; set; }
}

public class Student
{
    public int StudentId { get; set; }

    public string Name { get; set; }

    public ICollection<Activity> Activities { get; set; }
}

 

資料表

這樣的多對多設計,產生後的資料表Activity與Student是沒有直接關係的,也沒有互相設定foreign key。如下:  

而是會透過Entity Framework產生的StudentActivities資料表記錄著Activity與Student多對多的關係。  foreign key的關係也是建立在這個Table。

而且兩個foreign key也都有包含Delete Cascade設定,所以只要下一道刪除指令,就可以把有關係的資料一併刪除。

小結:

多對多的關係,使用Entity Framework Query資料時會自動join產生的關係資料表(StudentActivities ),所以開發的時候,可以不用去管Entity Framework怎麼幫你撈到資料的,因為都幫你做好啦。同理Insert, Update, Delete也是會自動完成相關的動作。

 

 

 

 

 

 

一天一分享,身體好健康。

該追究的不是過去的原因,而是現在的目的。