public override bool Equals(object obj) { BusinessBase <T> compareTo = obj as BusinessBase <T>; return(compareTo != null && HasSameNonDefaultIdAs(compareTo) && HasSameBusinessSignatureAs(compareTo)); }
/// <summary> /// Returns true if self and the provided domain /// object have the same ID values and the IDs /// are not of the default ID value /// </summary> private bool HasSameNonDefaultIdAs(BusinessBase <T> compareTo) { return(IsTransient() || compareTo.IsTransient() || Id.Equals(compareTo.Id)); }
private bool HasSameBusinessSignatureAs(BusinessBase <T> compareTo) { return(GetHashCode().Equals(compareTo.GetHashCode())); }