介紹
在之前的 Entity Framework 快速上手介紹 之中,兩個實體之間只是簡單的一對一關(guān)系,而在實際的應(yīng)用場景中,還會出現(xiàn)多對多關(guān)系,同時還有可能會出現(xiàn)多對多關(guān)系還附帶有其他字段的情況。
下面以幾個例子,對表間多對多關(guān)系的類表示加以更加詳細(xì)地描述。雖然兩個場景舉例是使用的 C# 及 Entity Framework(Model First) 框架自動生成數(shù)據(jù)庫、實體類。但這種設(shè)計方法,并不只是在使用 ORM 框架時需要,事實上,它是 POCO 及簡單 Java 類(POJO)的設(shè)計原則之一。
場景實例
場景一
在考慮多對多關(guān)系還附帶有字段的情況之前,讓我們先看一下,多對多關(guān)系但不附帶額外字段的情況下,實體類代碼的表示。
此處使用 Entity Framework(Model First),快速將 model diagram 轉(zhuǎn)為數(shù)據(jù)庫中的表及實體類。
假設(shè)的場景是學(xué)生選課,一名學(xué)生可以選多門課,一門課也可以被多個學(xué)生選擇。E-R 圖如下所示:
對應(yīng)自動生成的數(shù)據(jù)庫如下:
StudentSet
CourseSet
CourseRegistrationSet
其中 Course_Id 與 Students_Id(注:此處詞尾(s)負(fù)數(shù)的原因參見上面 E-R 圖中右邊的 Properties 中 End1 Navigation Property 的設(shè)置)分別以另外兩張數(shù)據(jù)表的 Id 主鍵作為外鍵。
同時 Course_Id與 Students_Id 兩者聯(lián)合做 CourseRegistrationSet 表的主鍵。
對應(yīng)自動生成實體類的代碼如下:
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26