У меня есть большая кодовая база, где я использую Entity Framework 6. Почти все мои объекты имеют ID в качестве основного столбца.
Некоторые объекты будут кэшироваться в течение длительного периодавремени, поэтому не все они принадлежат одному и тому же DbContext.
Поэтому я не могу действительно сравнить ссылки, в то время как строка базовой базы данных будет такой же «логическая вещь» .
Теперь я думаю о переопределении Equals
, ==
, GetHashCode()
, !=
и т. Д. Для столбца ID , поэтому я могу:
- делать, если
( actor1 == actor2 )
вместо проверки идентификаторов и , не забывая делать нулевую проверку - использовать
Dictionary<Actor,OtherClass>
вместо того, чтобы делать это на слабо набранном идентификаторе
Я думаю, что теоретически это может сделать код более читабельным и статически типизированным.
Поскольку это действительно большая база кода, я боюсь любых побочных эффектов, о которых я не думаю, иэто удивит меня, когда код будет в производстве.
- будет все внутренности Entity Framework все еще работает, как и ожидалось?
- Есть ли какой-либо другой отрицательный побочный эффект, который я должен учитывать?