2010-11-26 4 views
1

У меня есть объекты объекта, которые синхронизируются с базой данных. Я обычно использую эти объекты в трех разных сравнениях:Что я должен назвать методом проверки, если два объекта ссылаются на один и тот же объект db?

  1. Проверьте, являются ли два объекта объекта объектами CLR.
  2. Проверьте, равны ли все свойства двух объектов объекта.
  3. Проверьте, не связаны ли два объекта объекта с одним объектом базы данных, даже если некоторые свойства отличаются.

Для 1 я использую Object.ReferenceEquals(). Для 2 я переписываю Equals(), проверяя все свойства. Для 3 я был немного непоследователен. У некоторых объектов есть метод «Match», у некоторых есть метод «IsSame». Логика метода сравнивает их первичный ключ и, если еще не была назначена базой данных, их вторичный ключ (если он есть).

Множество сценариев кода было бы проще, если бы я использовал Equals для сравнения ключей (например, я мог проверять список только с помощью Contains()), но я бы счел его запутанным, если Equals сравнивали только ключи и не делали проверьте все свойства.

Мой сценарий - это система N-уровня с объектами самоконтроля. Мне часто приходится обновлять список сущностей или аналогичных с обновленным объектом, поступающим с другого уровня.

Существует ли консенсус в отношении именования метода проверки, если два объекта ссылаются на один и тот же логический объект? KeyEquals()? SameEntity()?

ответ

2

DbEquivalent()?

+1

+1 - Я определенно согласен с тем, что должно быть ясно, что это сравнение БД. – 2010-11-26 09:32:59

Смежные вопросы