執行下列任一 Entity SQL 運算子牽涉到類型實例的比較:
明確比較
相等運算:
=
!=
排序作業:
<
<=
>
>=
Nullability 作業:
為空
IS NOT NULL
明確區分
相等區別:
獨特的
GROUP BY
排序區別:
- 排序依據
隱含區別
設定作業與述詞 (相等):
聯盟
交集
除外
設定
重疊
項目述詞 (相等):
- 在內
支援的組合
下表顯示每種類型之比較運算子的所有支援組合:
| 型別 | = != |
GROUP BY 獨特 |
聯盟 相交 EXCEPT 設定 重疊 |
IN |
<
<= > >= |
根據 排序 |
IS NULL IS NOT NULL |
|---|---|---|---|---|---|---|---|
| 實體類型 | Ref1 | 所有屬性2 | 所有屬性2 | 所有屬性2 | 擲回 3 | 擲回 3 | Ref1 |
| 複雜類型 | 擲回 3 | 擲回 3 | 擲回 3 | 擲回 3 | 擲回 3 | 擲回 3 | 擲回 3 |
| 資料列 | 所有屬性4 | 所有屬性4 | 所有屬性4 | 擲回 3 | 擲回 3 | 所有屬性4 | 擲回 3 |
| 基本型別 | 提供者特定 | 提供者特定 | 提供者特定 | 提供者特定 | 提供者特定 | 提供者特定 | 提供者特定 |
| Multiset | 擲回 3 | 擲回 3 | 擲回 3 | 擲回 3 | 擲回 3 | 擲回 3 | 擲回 3 |
| 參考 | 是5 | 是5 | 是5 | 是5 | 扔 | 扔 | 是5 |
| 協會 型別 |
擲回 3 | 扔 | 扔 | 扔 | 擲回 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)
阿拉伯數位複雜類型的屬性會在傳送至存放區之前扁平化,因此它們會變成可比性(只要其所有屬性都是可比較的)。 另請參閱 4。
3Entity Framework 運行時間會偵測不支援的案例,並擲回有意義的例外狀況,而不會吸引提供者/存放區。
4嘗試比較所有屬性。 如果有非可比較類型的屬性,例如 text、ntext 或 image,可能會擲回伺服器例外狀況。
5會比較參考的所有個別元素(這包括實體集名稱和實體類型的所有索引鍵屬性)。