Бывают моменты, когда вы хотите, чтобы Equals сравнивал все свойства, и времена, когда вы хотите, чтобы Equals был просто ключом. Мы добились гораздо большего успеха, используя явные вспомогательные классы, поэтому нет никакой двусмысленности относительно того, что сравнивается.
ByKeyComparer.Equals...
ByPropertiesComparer.Equals...
или
Entity1.EqualsByKey...
Entity1.EqualsByProperties...