Jazyk

ValueComparer<T> Třída

Definice

Určuje snímkování a porovnání vlastních hodnot pro typy CLR, které se při pořizování snímku nedají porovnat Equals(Object, Object) nebo potřebují hloubkovou kopii. Například pole primitivních typů budou vyžadovat obojí, pokud bude zjištěna mutace.

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

Parametry typu

T

Typ.

Dědičnost
ValueComparer<T>
Odvozené
Atributy
Implementuje

Poznámky

Vytváření snímků je proces vytvoření kopie hodnoty do snímku, aby bylo možné ji později porovnat a zjistit, jestli se změnila. U některých typů, jako jsou kolekce, to musí být hloubková kopie kolekce, nikoli jen mělká kopie odkazu.

Další informace a příklady najdete v porovnání hodnot EF Core .

Konstruktory

Název Description
ValueComparer<T>(Boolean)

Vytvoří nový ValueComparer<T> s výchozím porovnávaným výrazem a mělkou kopií snímku.

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

Vytvoří nový ValueComparer<T> s daným porovnáním a vytvářením snímků výrazů.

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

Vytvoří novou ValueComparer<T> s daným porovnávaným výrazem. Pro snímek se použije mělká kopie.

Vlastnosti

Název Description
ConstructorExpression

Výraz představující konstrukci tohoto objektu.

Default

Výchozí hodnota ValueComparer<T> pro T, použití mělké kopie pro snímky a není upřednostňována IStructuralEquatable.

DefaultWithStructuralComparisons

Výchozí hodnota ValueComparer<T> pro T, upřednostnění IStructuralEquatable při implementaci typu. Obvykle se používá, když pole bajtů fungují jako klíče.

EqualsExpression

Výraz porovnání.

HashCodeExpression

Výraz kódu hash.

ObjectEqualsExpression

Výraz porovnání objektů.

SnapshotExpression

Výraz snímku.

Type

Typ.

Metody

Název Description
CreateDefaultEqualsExpression()

Vytvoří výraz pro rovnost.

CreateDefaultHashCodeExpression(Boolean)

Vytvoří výraz pro generování kódu hash.

CreateDefaultSnapshotExpression(Boolean)

Vytvoří výraz pro vytvoření snímku hodnoty.

Equals(Object, Object)

Porovná tyto dvě instance a určí, jestli jsou stejné.

Equals(T, T)

Porovná tyto dvě instance a určí, jestli jsou stejné.

ExtractEqualsBody(Expression, Expression)

Vezme EqualsExpression a nahradí dva parametry danými výrazy a vrátí transformovaný text.

(Zděděno od ValueComparer)
ExtractHashCodeBody(Expression)

HashCodeExpression Vezme a nahradí parametr daným výrazem a vrátí transformovaný text.

(Zděděno od ValueComparer)
ExtractSnapshotBody(Expression)

SnapshotExpression Vezme a nahradí parametr daným výrazem a vrátí transformovaný text.

(Zděděno od ValueComparer)
GetHashCode(Object)

Vrátí kód hash pro danou instanci.

GetHashCode(T)

Vrátí kód hash pro danou instanci.

Snapshot(Object)

Vytvoří snímek dané instance.

Snapshot(T)

Vytvoří snímek dané instance.

Metody rozšíření

Název Description
IsDefault(ValueComparer)

Vrátí true , pokud je daná ValueComparer implementace EF Core výchozí.

Platí pro