INNER CODE UNIT · C#
AnimalEqualityComparer
BlueshiftSoftware/EntityFrameworkCore · src/Blueshift.EntityFrameworkCore.MongoDB.SampleDomain/_Comparers.cs:78
public class AnimalEqualityComparer : BaseEqualityComparer<Animal>
{
private EnclosureEqualityComparer _enclosureEqualityComparer;
protected override bool MemberwiseEquals(Animal animal1, Animal animal2)
=> Equals(animal1.AnimalId, animal2.AnimalId)
&& animal1.GetType() == animal2.GetType()
&& string.Equals(animal1.Name, animal2.Name, StringComparison.Ordinal)
&& animal1.Age == animal2.Age
&& animal1.Height == animal2.Height
&& animal1.Weight == animal2.Weight
&& Equals(animal1.Enclosure?.EnclosureId, animal2.Enclosure?.EnclosureId)
&& (_enclosureEqualityComparer?.Equals(animal1.Enclosure, animal2.Enclosure) ?? true);
public AnimalEqualityComparer WithEnclosureEqualityComparer(Action<EnclosureEqualityComparer> configurator = null)
{
_enclosureEqualityComparer = new EnclosureEqualityComparer();
configurator?.Invoke(_enclosureEqualityComparer);