public bool Equals(EntityB other) { // FIXED - ensure Equals is reflexive, symmetric and transitive even when dealing with derived types var initial = EqualityHelper.EqualsQuickReject(this, other); if (initial != null) { return(initial.Value); } return(this.Bar == other.Bar); }