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)

true如果给定ValueComparer是默认 EF Core 实现,则返回 。

适用于