比較セマンティクス (Entity SQL)

次のいずれかの Entity SQL 演算子を実行すると、型インスタンスの比較が行われます。

明示的な比較

等価演算

  • =

  • !=

順序付け操作

  • <

  • <=

  • >

  • >=

NULL 値が許容される操作

  • IS NULL

  • IS NOT NULL

明示的な区別

等価区別

  • DISTINCT

  • GROUP BY

順序付け区別

  • ORDER BY

暗黙的な区別

設定操作および述語 (等価)

  • UNION

  • INTERSECT

  • EXCEPT

  • SET

  • OVERLAPS

項目述語 (等価)

  • IN

サポートされている組み合わせ

次の表は、各種類の型の比較演算子のサポートされているすべての組み合わせを示します。

Type

=

!=

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

スロー

スロー

○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)

2複合型のプロパティは、ストアに送信される前にフラット化されるので、比較が可能になります (すべてのプロパティが比較可能である場合)。 4 も参照してください。

3Entity Framework ランタイムでは、サポートされていないケースが検出され、プロバイダー/ストアは呼び出されずに、意味のある例外がスローされます。

4すべてのプロパティの比較が試行されます。 比較不能な型のプロパティ (text、ntext、image など) がある場合、サーバー例外がスローされることがあります。

5参照のすべての個々の要素 (エンティティ セット名およびエンティティ型のすべてのキー プロパティを含む) が比較されます。

参照

概念

Entity SQL の概要