1.無(wú)載荷(with NO Payload)的多對(duì)多關(guān)系建模

在數(shù)據(jù)庫(kù)中,存在通過(guò)一張鏈接表來(lái)關(guān)聯(lián)兩張表的情況。鏈接表僅包含連接兩張表形成多對(duì)多關(guān)系的外鍵,你需要把這兩張多對(duì)多關(guān)系的表導(dǎo)入到實(shí)體框架模型中。

1.1 假設(shè)我們有如下數(shù)據(jù)關(guān)系:

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

我們有三張表用來(lái)存儲(chǔ)Album(專輯)、Artist(藝人)、LinkTable(專輯與藝人的關(guān)系表)。一張“專輯”可以有多個(gè)“藝人”,同時(shí)一個(gè)“藝人”也可以有多張專輯。

1.2 右鍵你的項(xiàng)目,使用entityframework的database first創(chuàng)建實(shí)體模型。注意把這三張表都選上,當(dāng)點(diǎn)擊“完成”之后,實(shí)體框架生成的視圖如圖4-1

萬(wàn)碼學(xué)堂,電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開(kāi)發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

圖4-1

1.3 觀察圖4-1可以發(fā)現(xiàn),Album與Artist之間的關(guān)系被映射成了一條多對(duì)多的直線,而當(dāng)初選擇的LinkTable表沒(méi)有出現(xiàn)在視圖中。這是因?yàn)長(zhǎng)inkTable中沒(méi)有標(biāo)量屬性,也就是說(shuō)沒(méi)有載荷。實(shí)體框架認(rèn)為,LinkTable存在的意義就是表示Album與Artist之間的關(guān)系的,而上圖足以表示他兩的關(guān)系,所以LinkTable就沒(méi)有存在的必要了。但是如果LinkTable中有標(biāo)量屬性,實(shí)體框架則會(huì)為他創(chuàng)建相應(yīng)的模型,如下一節(jié)2.1。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式