2017-08-04 52 views
0

我有一個數據庫大約20個表,其中一個是「附件」表。除了一個表之外,其他所有表都有一個外鍵,這樣Identifier表中的每個記錄在所有其他表中都有一個記錄。LINQ to SQL和添加多個記錄到外部表的單個主鍵

對於附件表,我有兩個主鍵,用於標識與其關聯的標識符表中的記錄。我有兩個其他字段,其中一個字段應該作爲「索引」來表示每個標識符可以有多個附件。

我遇到的問題是我無法弄清楚如何使用LINQ to SQL將多個附件添加到單個標識符對象。我知道我不能擁有多個具有相同主鍵的記錄,那麼我還必須將附件索引作爲主鍵嗎?這會將我的C#項目中的標識符對象的附件成員變成列表嗎?我想我不理解我如何在附件表中有多個記錄引用相同的標識符記錄。

+0

您需要一個新的主鍵,這是一個附件號,每個附件都有一個唯一的ID。該id可以簡單地是一個增量數字。每次添加新項目時,首先檢查數據庫是否存在最大的ID號碼,並將新ID更大一些。 – jdweng

+0

索引已由應用程序處理,但會這樣做,添加一個新的主鍵,在我的C#項目的Identifier類中給我一個附件列表?我想我只是想知道如何將這些多個記錄添加到C#/ LINQ中的相同標識符對象。 –

+0

數據庫是一個像電子表格一樣具有行和列的扁平對象。表是包含數據庫列的子集的數據庫的視圖所以,當您讀取/寫入表時,您正在訪問數據庫的一部分。您的附件是數據庫的一行。添加附件可以覆蓋現有行或創建新行。如果您只有一個主鍵,那麼數據庫的每一行都會有不同的主鍵。在有多個主鍵的情況下,一個對象(一個主鍵)將位於數據庫的多行上。 – jdweng

回答

0

將附件表中的索引列更改爲主鍵並刷新Visual Studio中的DBML模式後,引用標識符類中的附件實體的EntityRef對象更改爲EntitySet,從而允許我添加多個附件實體到每個標識符。