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也是會自動完成相關的動作。
一天一分享,身體好健康。
該追究的不是過去的原因,而是現在的目的。