共用方式為


比較語意 (Entity SQL)

執行以下任何 Entity SQL 運算子都會牽涉到類型執行個體的比較:

明確比較

相等運算:

  • =

  • !=

排序作業:

  • <

  • <=

  • >

  • >=

可為 Null 的運算:

  • 是 NULL

  • IS NOT NULL

明確區分

相等區分:

  • DISTINCT

  • GROUP BY

排序區分:

  • 排序依據

隱含區分

Set 作業和述詞 (相等):

  • UNION

  • INTERSECT

  • EXCEPT

  • SET

  • OVERLAPS

Item 述詞 (相等):

  • IN

支援的組合

以下資料表針對每一種型別顯示比較運算子的所有支援組合:

類型 =

!=
GROUP BY

DISTINCT
UNION

INTERSECT

EXCEPT

SET

OVERLAPS
IN <<=

>>=
ORDER BY IS NULL

IS NOT NULL
實體類型 參考1 所有屬性2 所有屬性2 所有屬性2 擲回3 擲回3 參考1
複雜類型 擲回3 擲回3 擲回3 擲回3 擲回3 擲回3 擲回3
資料列 所有屬性4 所有屬性4 所有屬性4 擲回3 擲回3 所有屬性4 擲回3
基本型別 提供者特定 提供者特定 提供者特定 提供者特定 提供者特定 提供者特定 提供者特定
多重集 擲回3 擲回3 擲回3 擲回3 擲回3 擲回3 擲回3
參考 5 5 5 5 Throw Throw 5
關聯

type
擲回3 Throw Throw Throw 擲回3 擲回3 擲回3

1 給定實體類型執行個體的參考會以隱含的方式比較,如下列範例所示:

SELECT p1, p2
FROM AdventureWorksEntities.Product AS p1
     JOIN AdventureWorksEntities.Product AS p2
WHERE p1 != p2 OR p1 IS NULL

實體執行個體無法與明確參考相比較。 如果嘗試進行此作業,就會擲回例外狀況。 例如,下列查詢將會擲回例外狀況:

SELECT p1, p2
FROM AdventureWorksEntities.Product AS p1
     JOIN AdventureWorksEntities.Product AS p2
WHERE p1 != REF(p2)

2 複雜類型的屬性會先簡維,然後再送到存放區,以便可加以比較 (只要其所有屬性都可以比較即可)。 另請參閱 4

3 Entity Framework 執行階段會偵測到不支援的案例,並擲回有意義的例外狀況,而不會佔用提供者/存放區。

4 嘗試比較所有的屬性。 如果某個屬性具有無法比較的型別 (如文字、ntext 或影像),可能會擲回伺服器例外狀況。

5 參考的所有個別項目都會比較 (這包括實體集名稱及實體類型的所有 Key 屬性)。

另請參閱