title: Can I tell FluentAssertions to ignore Equals method when using BeEquivalentTo
body: <p>I have a simple class with two properties and the Equals method overridden:</p>
  
  <pre><code>public class Person : IEquatable&lt;Person&gt;
  {
      public Guid Id { get; set; }
  
      public string Name { get; set; }
  
      public override bool Equals(object obj)
      {
          return this.Equals(obj as Person);
      }
  
      public bool Equals(Person other)
      {
          return other != null &amp;&amp;
              this.Id.Equals(other.Id);
      }
  
      public override int GetHashCode()
      {
          return 2108858624 + EqualityComparer&lt;Guid&gt;.Default.GetHashCode(this.Id);
      }
  }
  </code></pre>
  
  <p>Now I created a simple test, where the <code>Id</code> values are the same, but the <code>Name</code> values are different. </p>
  
  <pre><code>[Fact]
  public void PersonShouldNotBeEqual()
  {
      var guid = Guid.NewGuid();
  
      var p1 = new Person { Id = guid, Name = "Me" };
      var p2 = new Person { Id = guid, Name = "You" };
  
      p1.Should().NotBeEquivalentTo(p2); // Fails
  }
  </code></pre>
  
  <p>I understood from the documentation that <code>BeEquivalentTo()</code> uses the <code>Equals()</code> method by default when it is overridden in the class, but I haven't found a way to overrule that so the instances are compared by their property values.</p>
  
  <p>Is it possible to do this in FluentAssertions other then the way below?</p>
  
  <pre><code>[Fact]
  public void PersonShouldBeEqual()
  {
      var guid = Guid.NewGuid();
  
      var p1 = new Person { Id = guid, Name = "Me" };
      var p2 = new Person { Id = guid, Name = "You" };
  
      p1.Id.Should().Be(p2.Id);
      p1.Name.Should().Be(p2.Name);
  }
  </code></pre>