HOW TO:定義資料關聯性
您可以使用 LightSwitch 中的資料設計工具,建立、修改或刪除資料之間的關聯性。 關聯性協助您建立相關資料搭配運作的畫面,例如,顯示客戶及其訂單的畫面。
本文件包括下列章節:
加入來自同一個資料來源的資料表或實體之間的關聯性
加入來自不同資料來源的資料表或實體之間的關聯性
修改關聯性
多重性設定
刪除行為設定
如需相關的視訊示範,請參閱如何在 LightSwitch 應用程式定義我的資料? (英文)。
加入來自同一個資料來源的資料表或實體之間的關聯性
您可以使用 LightSwitch 資料設計工具,加入 LightSwitch 內部資料庫中的兩個資料表之間的關聯性。 在某些情況下,您也可以使用中的資料設計工具從相同的外部資料來源將實體之間的關聯性,但有一些限制。 您必須在伺服器上建立這些關聯性,然後在 LightSwitch 重新整理資料連接。 如需如何重新整理對資料來源之連接的詳細資訊,請參閱 HOW TO:連接至資料。
若要加入 LightSwitch 內部資料庫中的資料表之間的關聯性
在 [方案總管],按兩下要用於關聯性的其中一個資料表。
在 [資料設計工具] 的 [命令列],按一下 [關聯性]。
在 [加入新的關聯性] 對話方塊中的 [名稱] 列,選取您要套用關聯性的兩個資料表,例如,Customers 和 Orders。
在 [多重性] 列中,指定這些資料表所需的關聯性。 如需多重性和關聯性種類的詳細資訊,請參閱多重性設定。
在 [刪除時的行為] 列中,指定當使用者嘗試刪除一個資料表中的記錄,但是資料仍然存在於另一個資料表中的相關記錄時 (例如,如果使用者嘗試刪除客戶,但客戶訂單仍存在),應用程式應執行的動作。 如需詳細資訊,請參閱刪除行為設定。
在 [導覽屬性] 列中,提供每個「導覽屬性」(Navigation Property) 的名稱。 導覽屬性協助使用者在顯示相關資料的畫面區域之間導覽。 導覽屬性也顯示為 IntelliSense 中的物件,您可以使用這些物件,在程式碼中建構 LINQ 運算式。
按一下 [確定]。
若要將資料表之間的關聯性在附加資料庫
在 [方案總管],按兩下要用於關聯性的其中一個資料表。
在 [資料設計工具] 的 [命令列],按一下 [關聯性]。
[新增新的關聯性 ] 對話方塊隨即開啟。
在 [關聯資料表] 一欄的名稱列中,選擇您需要套用關聯性的資料表。
資料表必須包含位在關聯性主索引鍵端所使用的主索引鍵。
在 [多重性] 列中,指定這些資料表所需的關聯性。
如需詳細資訊,請參閱多重性設定。
在 [加入新的關聯性] 對話方塊底部附近出現的資料格中,從關聯性的外部關聯中選擇屬性。
這個屬性是項目主索引鍵的一部分。
注意事項 如果資料表包含主索引鍵,所有外部索引鍵資料型別必須相符。
注意事項 如果欄位是外部索引鍵,則 Dynamic Data 會將 ForeignKey.ascx 範本用於多對一關聯性,如果欄位是外部索引鍵,則 Dynamic Data 會將 ForeignKey.ascx 範本用於多對一關聯性,對於零或一對一關聯性,必須使用主索引鍵值在關聯性的兩邊。
選擇 [確定] 按鈕。
加入來自不同資料來源的資料表或實體之間的關聯性
您可以使用 LightSwitch 資料設計工具,加入來自不同資料來源的資料表或實體之間的關聯性。 例如,您可以加入 LightSwitch 內部資料庫中資料表與 SharePoint 清單中實體之間的關聯性。
若要加入來自不同資料來源的兩個資料表或實體之間的關聯性
在 [方案總管],按兩下要用於關聯性的其中一個資料表或實體。
在 [資料設計工具] 的 [命令列],按一下 [關聯性]。
在 [加入新的關聯性] 對話方塊中的 [名稱] 列,選取您要套用關聯性的資料表或實體,例如,Customers 和 Orders。
在 [多重性] 列中,指定這些資料表或實體所需的關聯性。 如需多重性和關聯性種類的詳細資訊,請參閱多重性設定。
注意事項 請注意,這種關聯性未啟用 [刪除時的行為] 列。
在 [導覽屬性] 列中,提供每個「導覽屬性」(Navigation Property) 的名稱。 導覽屬性協助使用者在顯示相關資料的畫面區域之間導覽。 導覽屬性也顯示為 IntelliSense 中的物件,您可以使用這些物件,在程式碼中建構 LINQ 運算式。
在 [加入新的關聯性] 對話方塊底部附近出現的資料格中,從一個資料表或實體選取屬性,以及從另一個資料表或實體中選取相關屬性。 這些屬性是資料表或實體連結在一起的位置。 例如,選取 Customer 實體的 [Id] 屬性和 Order 實體的 [CustomerID] 屬性。
按一下 [確定]。
修改關聯性
LightSwitch 資料設計工具可用於修改或刪除關聯性。
若要修改現有的關聯性
在 [方案總管],按兩下要用於關聯性的其中一個實體或資料表。
在 [資料設計工具] 中,選取表示與另一個實體或資料表之關聯性的「導覽屬性」(Navigation Property)。 例如,Customer 實體可能有一個名為 Orders 的屬性,做為客戶-訂單關聯性中的導覽屬性。
在 [屬性] 視窗中,按一下 [編輯關聯性屬性]。
[編輯關聯性] 對話方塊隨即開啟。
若要修改關聯性,請參閱本文件中的適當章節:
加入來自同一個資料來源的實體之間的關聯性。
加入來自不同資料來源的實體之間的關聯性。
按一下 [確定]。
若要刪除關聯性
在 [方案總管],按兩下要用於關聯性的其中一個實體或資料表。
在 [資料設計工具] 中,以滑鼠右鍵按一下表示與另一個實體或資料表之關聯性的「導覽屬性」(Navigation Property),然後按一下 [刪除]。
多重性設定
下表描述 LightSwitch 中可用的多重性設定組合。
從值 |
到值 |
描述 |
---|---|---|
One |
零個或一個 |
[從] 可以有一個或零個 [到],但 [到] 必須有一個 [從]。 |
One |
多 |
[從] 可以有多個 [到] 執行個體,但 [到] 必須有一個 [從]。 |
零個或一個 |
One |
[從] 可以有一個 [到],但 [到] 必須有一個或零個 [從]。 |
零個或一個 |
多 |
[從] 可以有多個 [到] 執行個體,而 [到] 可以有一個或零個 [從]。 |
多 |
One |
[從] 可以有一個 [到],但 [到] 必須有多個 [從] 執行個體。 |
多 |
零個或一個 |
[到] 可以有一個或零個 [從],而 [從] 可以有多個 [到] 執行個體。 |
注意事項 |
---|
您不能透過使用 LightSwitch 資料設計工具指定一對一、零或一對零或一,以及多對多關聯性。 |
刪除行為設定
下表描述可設定管理當使用者嘗試刪除的記錄是關聯性的一部分時,會發生什麼狀況的選項。 某些選項可能不適用於某些類型的關聯性。
刪除時的行為值 |
描述 |
---|---|
串聯刪除 |
刪除 "Table1" 時,也刪除所有相關的 "Table2" 執行個體。 |
Restricted |
如果有相關的 "Table2" 執行個體,不能刪除 "Table1"。 例如,選取 [受限制的],以指定在資料庫中有相關訂單時不能刪除客戶。 |
解除關聯 |
刪除 "Table1" 時,將相關 "Table2" 執行個體上的 "Table1" 參考設定為 null。 |