ValueComparer<T> 類別

定義

針對無法與 Equals(Object, Object) 和/或擷取快照集時需要深層複本的 CLR 型別指定自訂值快照集和比較。 例如,如果偵測到變動,則基本類型的陣列需要兩者。

public class ValueComparer<T> : Microsoft.EntityFrameworkCore.ChangeTracking.ValueComparer, System.Collections.Generic.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 值比較子

建構函式

ValueComparer<T>(Boolean)

使用預設比較運算式和快照集的淺層複本,建立新的 ValueComparer<T>

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

使用指定的比較運算式建立新的 ValueComparer<T> 。 淺層複製將用於快照集。

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

使用指定的比較和快照運算式建立新的 ValueComparer<T>

屬性

EqualsExpression

比較運算式。

HashCodeExpression

雜湊程式碼運算式。

SnapshotExpression

快照集運算式。

Type

類型。

方法

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)

建立指定實例的快照集。

擴充方法

IsDefault(ValueComparer)

如果指定的 ValueComparer 是預設的 EF Core 實作,則傳 true 回 。

適用於