According to MSDN: Most reference types must not overload the equality operator, even if they override Equals. However, if you are implementing a reference type that is intended to have value semantics, such as a complex number type, you must override the equality operator.
What is the best practice to implement equals method and equality operator for a typical domain entity like Customer?
Should it implement equals method to return true if identities of two entities are the same? What if entity is not immutable? What if both entities are new and their identities have empty values. And what about equality operator?
As JaredPar mentioned here Equals will actually measure the equality of the values while == will measure whether or not they are the same reference.