語言

ValueComparer<T> 類別

定義

規定針對無法與CLR比較 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 價值比較工具 。

建構函式

名稱 Description
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> 。 快照會使用淺層副本。

屬性

名稱 Description
ConstructorExpression

表示此物件建構的表達式。

Default

預設情況下ValueComparer<T>T,快照使用淺層複製,且不偏IStructuralEquatable袒 。

DefaultWithStructuralComparisons

預設值ValueComparer<T>T為 ,偏好IStructuralEquatable類型實作時的設定。 這通常用於位元組陣列作為鍵時。

EqualsExpression

比較表達。

HashCodeExpression

雜湊碼表達式。

ObjectEqualsExpression

物體比較表達式。

SnapshotExpression

快照表達。

Type

「類型」。

方法

名稱 Description
CreateDefaultEqualsExpression()

創造了平等的表達。

CreateDefaultHashCodeExpression(Boolean)

建立一個用於產生雜湊碼的表達式。

CreateDefaultSnapshotExpression(Boolean)

建立一個表達式來建立值的快照。

Equals(Object, Object)

比較這兩個實例,判斷它們是否相等。

Equals(T, T)

比較這兩個實例,判斷它們是否相等。

ExtractEqualsBody(Expression, Expression)

將 EqualsExpression 兩個參數取出並替換為給定的表達式,回傳轉換後的實體。

(繼承來源 ValueComparer)
ExtractHashCodeBody(Expression)

取 並將 HashCodeExpression 參數替換為給定表達式,回傳轉換後的實體。

(繼承來源 ValueComparer)
ExtractSnapshotBody(Expression)

取 並將 SnapshotExpression 參數替換為給定表達式,回傳轉換後的實體。

(繼承來源 ValueComparer)
GetHashCode(Object)

回傳給定實例的雜湊碼。

GetHashCode(T)

回傳給定實例的雜湊碼。

Snapshot(Object)

建立給定實例的快照。

Snapshot(T)

建立給定實例的快照。

擴充方法

名稱 Description
IsDefault(ValueComparer)

若該版本ValueComparer為預設的 EF Core 實作,則回傳true。

適用於