Language

ValueComparer<T> クラス

定義

Equals(Object, Object)と比較できない CLR 型のカスタム値のスナップショット作成と比較を指定します。また、スナップショットを作成するときにディープ コピーが必要です。 たとえば、プリミティブ型の配列では、変更を検出する場合は両方が必要になります。

[System.Runtime.CompilerServices.Nullable(0)]
public class ValueComparer<T> : Microsoft.EntityFrameworkCore.ChangeTracking.ValueComparer, System.Collections.Generic.IEqualityComparer<T>
public class ValueComparer<T> : Microsoft.EntityFrameworkCore.ChangeTracking.ValueComparer, System.Collections.Generic.IEqualityComparer<T>
[<System.Runtime.CompilerServices.Nullable(0)>]
type ValueComparer<'T> = class
    inherit ValueComparer
    interface IEqualityComparer<'T>
type ValueComparer<'T> = class
    inherit ValueComparer
    interface IEqualityComparer<'T>
Public Class ValueComparer(Of T)
Inherits ValueComparer
Implements IEqualityComparer(Of T)

型パラメーター

T

型。

継承
ValueComparer<T>
派生
属性
実装

注釈

スナップショット作成は、後で比較して変更されたかどうかを判断できるように、値のコピーをスナップショットに作成するプロセスです。 コレクションなどの一部の型では、これは参照の浅いコピーではなく、コレクションのディープ コピーである必要があります。

詳細と例については、 EF Core の値の比較子 を参照してください。

コンストラクター

Name 説明
ValueComparer<T>(Boolean)

既定の比較式とスナップショットの簡易コピーを使用して、新しい ValueComparer<T> を作成します。

ValueComparer<T>(Expression<Func<T,T,Boolean>>, Expression<Func<T,Int32>>, Expression<Func<T,T>>)

指定された比較式とスナップショット式を使用して新しい ValueComparer<T> を作成します。

ValueComparer<T>(Expression<Func<T,T,Boolean>>, Expression<Func<T,Int32>>)

指定された比較式を使用して新しい ValueComparer<T> を作成します。 スナップショットには浅いコピーが使用されます。

プロパティ

Name 説明
ConstructorExpression

このオブジェクトの構築を表す式。

Default

スナップショットに簡易コピーを使用し、IStructuralEquatableを優先しない、Tの既定のValueComparer<T>。

DefaultWithStructuralComparisons

Tの既定のValueComparer<T>。型が実装するときにIStructuralEquatableを優先します。 これは通常、バイト配列がキーとして機能する場合に使用されます。

EqualsExpression

比較式。

HashCodeExpression

ハッシュ コード式。

ObjectEqualsExpression

オブジェクト比較式。

SnapshotExpression

スナップショット式。

Type

型。

メソッド

Name 説明
CreateDefaultEqualsExpression()

等しい式を作成します。

CreateDefaultHashCodeExpression(Boolean)

ハッシュ コードを生成するための式を作成します。

CreateDefaultSnapshotExpression(Boolean)

値のスナップショットを作成するための式を作成します。

Equals(Object, Object)

2 つのインスタンスを比較して、それらが等しいかどうかを判断します。

Equals(T, T)

2 つのインスタンスを比較して、それらが等しいかどうかを判断します。

ExtractEqualsBody(Expression, Expression)

EqualsExpressionを受け取り、2 つのパラメーターを指定された式に置き換え、変換された本文を返します。

(継承元 ValueComparer)
ExtractHashCodeBody(Expression)

HashCodeExpressionを受け取り、パラメーターを指定された式に置き換え、変換された本文を返します。

(継承元 ValueComparer)
ExtractSnapshotBody(Expression)

SnapshotExpressionを受け取り、パラメーターを指定された式に置き換え、変換された本文を返します。

(継承元 ValueComparer)
GetHashCode(Object)

指定されたインスタンスのハッシュ コードを返します。

GetHashCode(T)

指定されたインスタンスのハッシュ コードを返します。

Snapshot(Object)

指定されたインスタンスのスナップショットを作成します。

Snapshot(T)

指定されたインスタンスのスナップショットを作成します。

拡張メソッド

Name 説明
IsDefault(ValueComparer)

指定されたValueComparerが既定の EF Core 実装である場合は、trueを返します。

適用対象