У меня есть объекты сущностей, которые синхронизируются с базой данных.Я обычно использую эти сущности в трех разных сравнениях:
- Проверьте, являются ли два объекта сущности одним и тем же объектом CLR.
- Проверьте, равны ли все свойства двух объектов сущности.
- Проверьте, ссылаются ли два объекта сущности на один и тот же объект базы данных, даже если некоторые свойства различаются.
Для 1 я использую Object.ReferenceEquals ().Для 2 я перезаписываю Equals (), проверяя все свойства.Для 3 я был немного противоречивым.У некоторых сущностей есть метод Match, у некоторых есть метод IsSame.Логика метода сравнивает их первичный ключ и, если еще не был назначен базой данных, их вторичный ключ (если он у них есть).
Многие сценарии кода были бы проще, если бы я использовал Equals для сравненияключи (например, я мог бы проверить список, просто используя Contains ()), но я бы смутился, если бы Equals сравнивал только ключи и не проверял все свойства.
Мой сценарий - система N-уровняс самообследованием сущностей.Мне часто приходится обновлять список сущностей или аналогичных с обновленной сущностью, поступающей с другого уровня.
Есть ли консенсус в отношении наименования метода, проверяющего, ссылаются ли две сущности на одну и ту же логическую сущность?KeyEquals ()?SameEntity ()