Share via


命名空間 (Entity SQL)

Entity SQL 導入了命名空間來避免全域識別碼的名稱衝突,例如型別名稱、實體集、函式等等。Entity SQL 中的命名空間支援類似於 .NET Framework 中的命名空間支援。

Entity SQL 提供了兩種形式的 USING 子句:限定的命名空間 (為命名空間提供較短的別名) 及不限定的命名空間,如下列範例所述:

USING System.Data;

USING tsql = System.Data;

名稱解析規則

如果識別項無法在區域範圍 (Local Scope) 內解析,Entity SQL 會嘗試在全域範圍 (命名空間) 內尋找名稱。Entity SQL 會先嘗試將此識別項 (前置詞) 與其中一個限定的命名空間比對。如果兩者相符,Entity SQL 會嘗試解析指定之命名空間內的其餘識別項。如果兩者不相符,則會擲回例外狀況。

接下來,Entity SQL 會嘗試搜尋所有未限定的命名空間 (於初構中指定),以找出此識別項。如果可以在剛好一個命名空間內找到此識別項,就會傳回該位置。如果有一個以上的命名空間符合該識別項,則會擲回例外狀況。如果無法針對此識別項識別任何命名空間,Entity SQL 會將此名稱傳遞到下一個向外範圍 (DbCommandDbConnection 物件),如下列範例所述:

SELECT TREAT(p AS NamespaceName.Employee)
FROM ContainerName.Person AS p
WHERE p IS OF (NamespaceName.Employee)

與 .NET Framework 的差異

在 .NET Framework 中,您可以使用部分限定的命名空間。Entity SQL 則不允許。

ADO.NET 使用方式

查詢是透過 ADO.NET DbCommand 物件來表示。DbCommand 物件則可透過 DbConnection 物件來建置。此外,命名空間也可以指定成 DbCommandDbConnection 物件的一部分。如果 Entity SQL 無法在查詢本身內解析識別項,則會探查外部命名空間 (根據類似的規則)。

另請參閱

概念

Entity SQL 參考
Entity SQL 概觀