语言

ValueComparer 类

定义

指定无法与 Equals(Object, Object) /或创建快照时需要深度/结构副本进行比较的 CLR 类型的自定义值快照和比较。 例如,如果检测到突变,基元类型的数组将需要这两种类型。

[System.Runtime.CompilerServices.Nullable(0)]
public abstract class ValueComparer : System.Collections.Generic.IEqualityComparer<object>, System.Collections.IEqualityComparer
public abstract class ValueComparer : System.Collections.IEqualityComparer
public abstract class ValueComparer : System.Collections.Generic.IEqualityComparer<object>, System.Collections.IEqualityComparer
[<System.Runtime.CompilerServices.Nullable(0)>]
type ValueComparer = class
    interface IEqualityComparer
    interface IEqualityComparer<obj>
type ValueComparer = class
    interface IEqualityComparer
type ValueComparer = class
    interface IEqualityComparer
    interface IEqualityComparer<obj>
Public MustInherit Class ValueComparer
Implements IEqualityComparer, IEqualityComparer(Of Object)
Public MustInherit Class ValueComparer
Implements IEqualityComparer
继承
ValueComparer
派生
特性
实现

注解

快照是将值的副本创建到快照中的过程,以便稍后可以进行比较以确定该值是否已更改。 对于某些类型(例如集合),这需要是集合的深层副本,而不仅仅是引用的浅表副本。

有关详细信息和示例,请参阅 EF Core 值比较器 。

构造函数

名称 说明
ValueComparer(LambdaExpression, LambdaExpression, LambdaExpression)

ValueComparer使用给定的比较和快照表达式创建新的表达式。

字段

名称 说明
BoolIdentity

这是一个内部 API,支持Entity Framework Core基础结构,不受与公共 API 相同的兼容性标准的约束。 可以在任何版本中更改或删除它,而不通知。 只需在代码中直接使用它,并非常谨慎地知道这样做可能会导致应用程序在更新到新的Entity Framework Core版本时失败。

HashCodeAddMethod

这是一个内部 API,支持Entity Framework Core基础结构,不受与公共 API 相同的兼容性标准的约束。 可以在任何版本中更改或删除它,而不通知。 只需在代码中直接使用它,并非常谨慎地知道这样做可能会导致应用程序在更新到新的Entity Framework Core版本时失败。

ToHashCodeMethod

这是一个内部 API,支持Entity Framework Core基础结构,不受与公共 API 相同的兼容性标准的约束。 可以在任何版本中更改或删除它,而不通知。 只需在代码中直接使用它,并非常谨慎地知道这样做可能会导致应用程序在更新到新的Entity Framework Core版本时失败。

属性

名称 说明
ConstructorExpression

表示此对象的构造的表达式。

EqualsExpression

比较表达式。

HashCodeExpression

哈希代码表达式。

ObjectEqualsExpression

对象比较表达式。

SnapshotExpression

快照表达式。

Type

类型。

方法

名称 说明
Add(HashCode, Int32)

这是一个内部 API,支持Entity Framework Core基础结构,不受与公共 API 相同的兼容性标准的约束。 可以在任何版本中更改或删除它,而不通知。 只需在代码中直接使用它,并非常谨慎地知道这样做可能会导致应用程序在更新到新的Entity Framework Core版本时失败。

CreateDefault(Type, Boolean)

为给定类型创建默认值 ValueComparer<T> 。

CreateDefault<T>(Boolean)

为给定类型创建默认值 ValueComparer<T> 。

Equals(Object, Object)

比较两个实例以确定它们是否相等。

ExtractEqualsBody(Expression, Expression)

使用 EqualsExpression 给定表达式获取并替换两个参数,并返回转换后的正文。

ExtractHashCodeBody(Expression)

HashCodeExpression获取参数并将其替换为给定表达式,并返回转换后的正文。

ExtractSnapshotBody(Expression)

SnapshotExpression获取参数并将其替换为给定表达式,并返回转换后的正文。

GetGenericSnapshotMethod(Type)

这是一个内部 API,支持Entity Framework Core基础结构,不受与公共 API 相同的兼容性标准的约束。 可以在任何版本中更改或删除它,而不通知。 只需在代码中直接使用它,并非常谨慎地知道这样做可能会导致应用程序在更新到新的Entity Framework Core版本时失败。

GetHashCode(Object)

返回给定实例的哈希代码。

Snapshot(Object)

创建给定实例的快照。

扩展方法

名称 说明
IsDefault(ValueComparer)

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

适用于