共用方式為


NAVIGATE (Entity SQL)

巡覽實體之間建立的關聯性。

語法

navigate(instance-expression, [relationship-type], [to-end [, from-end] ])

論點

instance-expression 實體的實例。

relationship-type 關聯性的型別名稱,來自概念架構定義語言 (CSDL) 檔案。 限定 relationship-type 為 <命名空間>。<關聯性類型名稱>。

to 關聯性的結尾。

from 關聯性的開頭。

傳回值

如果結束的基數是 1,則傳回值會是 Ref<T>。 如果結束的基數是 n,則傳回值會是 Collection<Ref<T>>

備註

關聯性是實體數據模型 (EDM) 中的第一級建構。 您可以在兩個或多個實體類型之間建立關聯性,而且使用者可以從一端(實體)巡覽至另一個關聯性。 from 當關聯性內的名稱解析中沒有模棱兩可時,和 to 會有條件地選擇性。

NAVIGATE 在 O 和 C 空間中有效。

導覽建構的一般形式如下:

navigate(instance-expression, , relationship-type[ [ to-endfrom-end ] ] )

例如:

Select o.Id, navigate(o, OrderCustomer, Customer, Order)
From LOB.Orders as o

其中 OrderCustomer 是 relationship,而 Customer 和 Order 是 to-end 關聯性的 (customer) 和 from-end (order) 。 如果 OrderCustomer 是 n:1 關聯性,則 navigate 表達式的結果類型為 Ref<Customer>。

此表示式的簡單形式如下:

Select o.Id, navigate(o, OrderCustomer)
From LOB.Orders as o

同樣地,在下列窗體的查詢中,navigate 表達式會產生集合<Ref<Order>>。

Select c.Id, navigate(c, OrderCustomer, Order, Customer)
From LOB.Customers as c

instance-expression 必須是實體/ref 類型。

範例

下列 Entity SQL 查詢會使用 NAVIGATE 運算符來巡覽 Address 和 SalesOrderHeader 實體類型之間建立的關聯性。 查詢是以 AdventureWorks 銷售模型為基礎。 若要編譯並執行此查詢,請遵循下列步驟:

  1. 遵循 如何:執行會傳回 StructuralType 結果的查詢中的程式。

  2. 將下列查詢當做自變數傳遞至 ExecuteStructuralTypeQuery 方法:

SELECT address.AddressID, (SELECT VALUE DEREF(soh) 
FROM NAVIGATE(address, 
    AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID) 
    AS soh)
FROM AdventureWorksEntities.Addresses AS address

另請參閱