2012-08-03 61 views
0

我在Visual Studio中創建了2個表格,分別是TA和TB。在edmx文件中,我在TA和TB之間建立了一對多的關聯。進行關聯後,TB中將生成一個名爲TAId的新列。關聯後出現新列問題

我只想知道我是否必須在數據庫的TB表中添加該列?

編輯:異常我得到:

nCeremony.msl(23,10):錯誤3004:問題在映射片段起始於 線23:否屬性中指定映射集CourseOption.MenuId CourseOptions。

一種與密鑰(PK)實體不會往返時:

實體是鍵入[CeremonyDBModel.CourseOption]

Ceremony.msl(31,10): 錯誤3004:在映射問題從第31行開始的片段:沒有爲屬性菜單中的Menu.CeremonyId屬性指定的映射 。

與密鑰(PK)實體時 不會往返:

實體是由具有在記錄輸入[CeremonyDBModel.Menu]

+1

TB中是否有任何其他表示TB的父記錄的主鍵? – Olaf 2012-08-03 19:42:52

+0

不,我沒有 – user1574860 2012-08-03 19:55:03

+0

然後,你必須去與Visula Studio的建議,並添加TA_ID列表TB。 – Olaf 2012-08-03 19:58:39

回答

0

一個一一對多關聯完成一個子表參考他們的父母。

考慮一個客戶和購買的例子。客戶可能會進行多次採購,但每次採購只能屬於一名客戶。考慮下面兩個表:

customers  purchases 
============ =========== 
id name  id customer_id product 

每個客戶都有一個唯一的ID和名稱。每筆購買還有一個唯一的ID和產品名稱。但是,爲了建立一對多關聯,購買表格必須也參考哪個客戶進行購買的。你不能這樣做,否則你會有重複的客戶名稱,每個客戶都參考一些購買。

例如:

customers  purchases 
============ =========== 
id name  id customer_id product 
--- -------- --- ------------ -------- 
1 John  1 1   apple 
2 Mary  2 1   orange 
       3 2   banana 

在這個例子中,你可以看到,約翰購買了蘋果和橙色,和瑪麗購買香蕉。

customer_id列是採購表與客戶表建立關係所必需的。

通過創建TA和TB表之間的關聯,Visual Studio爲您創建了列TAid,因爲這就是MS SQL Server等關係數據庫處理它們的方式。

+0

但是這個列不存在於數據庫表中,所以這就是爲什麼我運行我的應用程序時得到異常,爲什麼? – user1574860 2012-08-03 20:11:53

+0

如果您在嘗試運行應用程序時遇到異常,應該在問題中發佈異常文本。 – JYelton 2012-08-03 20:22:42

+0

對不起,但我只是發佈了異常文本,請看看 – user1574860 2012-08-03 20:40:28