Idioma

ValueComparer<T> Classe

Definição

Especifica o instantâneo de valor personalizado e a comparação para tipos CLR que não podem ser comparados Equals(Object, Object) com e/ou precisam de uma cópia profunda ao tirar um instantâneo. Por exemplo, matrizes de tipos primitivos exigirão ambos se a mutação for detectada.

[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)

Parâmetros de tipo

T

O tipo.

Herança
ValueComparer<T>
Derivado
Atributos
Implementações

Comentários

O instantâneo é o processo de criação de uma cópia do valor em um instantâneo para que ele possa ser comparado posteriormente para determinar se ele foi alterado. Para alguns tipos, como coleções, isso precisa ser uma cópia profunda da coleção em vez de apenas uma cópia superficial da referência.

Consulte os comparadores de valor do EF Core para obter mais informações e exemplos.

Construtores

Nome Descrição
ValueComparer<T>(Boolean)

Cria uma nova ValueComparer<T> com uma expressão de comparação padrão e uma cópia superficial para o instantâneo.

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

Cria um novo ValueComparer<T> com as expressões de comparação e instantâneo fornecidas.

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

Cria um novo ValueComparer<T> com a expressão de comparação fornecida. Uma cópia superficial será usada para o instantâneo.

Propriedades

Nome Descrição
ConstructorExpression

A expressão que representa a construção deste objeto.

Default

O padrão ValueComparer<T> para Tusar uma cópia superficial para instantâneos e não favorecer IStructuralEquatable.

DefaultWithStructuralComparisons

O padrão ValueComparer<T> para T, favorecendo IStructuralEquatable quando o tipo o implementa. Isso geralmente é usado quando matrizes de bytes atuam como chaves.

EqualsExpression

A expressão de comparação.

HashCodeExpression

A expressão de código hash.

ObjectEqualsExpression

A expressão de comparação de objeto.

SnapshotExpression

A expressão de instantâneo.

Type

O tipo.

Métodos

Nome Descrição
CreateDefaultEqualsExpression()

Cria uma expressão para igualdade.

CreateDefaultHashCodeExpression(Boolean)

Cria uma expressão para gerar um código hash.

CreateDefaultSnapshotExpression(Boolean)

Cria uma expressão para criar um instantâneo de um valor.

Equals(Object, Object)

Compara as duas instâncias para determinar se elas são iguais.

Equals(T, T)

Compara as duas instâncias para determinar se elas são iguais.

ExtractEqualsBody(Expression, Expression)

Usa EqualsExpression e substitui os dois parâmetros pelas expressões fornecidas, retornando o corpo transformado.

(Herdado de ValueComparer)
ExtractHashCodeBody(Expression)

Usa e HashCodeExpression substitui o parâmetro pela expressão fornecida, retornando o corpo transformado.

(Herdado de ValueComparer)
ExtractSnapshotBody(Expression)

Usa e SnapshotExpression substitui o parâmetro pela expressão fornecida, retornando o corpo transformado.

(Herdado de ValueComparer)
GetHashCode(Object)

Retorna o código hash da instância fornecida.

GetHashCode(T)

Retorna o código hash da instância fornecida.

Snapshot(Object)

Cria um instantâneo da instância fornecida.

Snapshot(T)

Cria um instantâneo da instância fornecida.

Métodos de Extensão

Nome Descrição
IsDefault(ValueComparer)

Retorna true se o determinado ValueComparer for uma implementação padrão do EF Core.

Aplica-se a