2011-04-28 34 views
0

我有一個新的情況(對我來說),並想知道在EF4.0中做什麼(數據庫優先)是最好的方法。這是一個虛構的例子,但它模仿我需要做的邏輯:你如何在EF4.0中滿足這個要求?

假設你只有兩個表PEOPLE和TEAMS,每個團隊都有團隊領導和備份團隊領導。人員表對於每個人都有單獨的記錄,具有唯一的ID,團隊記錄具有唯一的ID,但是也映射到人員表的TeamLeaderID和BackupTeamLeaderId。

你如何在EF中處理這個問題?如果我只有一個teamleaderid,我可以通過Team.People.Name訪問它,但是因爲我知道有兩個來自團隊 - >人員的鏈接,所以這個設計將無法工作。

我可以想到很多kludgy場景,但是在EF中設置它的正確方法是什麼(或者重新設計底層表)。

回答

1

我不確定你爲什麼從EF問題開始。你有數據庫模式嗎?如果是這樣,請提供。如果沒有,那麼我會從那裏開始。

您的團隊表需要People表的Leader外鍵。如果任何人只能在一個團隊中,那麼您可以將TeamID列添加到您的人員表中。 TempID設置爲特定團隊的每個人都是該團隊中的一員。

+0

假設people表只有兩個字段:id和name,team表有4個字段,ID,TeamName和TeamLeaderID,BackupTeamLeaderID。我有一個用於teamleaderid的外鍵給people表和backupteamleaderid到people表....所以我如何獲得backupteamleaders的名字?如果我是team.people.name,那將如何工作? (每個人都可以在一個以上的團隊中,而團隊中的團隊領導可能是另一個團隊中的備份團隊成員,反之亦然。) – user318573 2011-04-28 13:54:09

+1

如果我按照你所說的話,它會像'team.BackupTeamLeaderID.Name '(假設'BackupTeamLeaderID'是一個外鍵)。但我仍然對某些細節模糊不清。 – 2011-04-28 13:57:39

+0

好的,你沒有完全明白它,但你讓我回答,所以我會給你信用。我需要手動添加第二個叫做'backupteamleader'的naviation屬性,它使用了backupteamleader foreignkey;到目前爲止,我只依賴於將表添加到模型時添加的默認導航屬性(假設外鍵已正確設置)。 – user318573 2011-04-28 14:05:40

相關問題