У меня есть сущность POCO, которую можно использовать с freamwork.Эти объекты создаются EF, и я вижу, что свойства, являющиеся коллекциями, являются ICollection, а созданный объект является хэш-набором.
Поэтому, если я хочу найти объект, я могу сделать это:
MyPoco.MyProperty.FirstOrDefault(x => x == MyPocoToSearch);
Это комплекс O (1), потому что он сравнивает объекты хэш-набора.
Однако, много раз объекты могут отличаться, потому что один объект находится на клиентском уровне идругой объект из dbContext, поэтому, если я использую объект для сравнения, я получу false, потому что это разные объекты.Поэтому мне нужно искать по идентификатору, что-то вроде этого:
MyPoco.MyProperty.FirstOrDefault(x => x.ID == MyClientPoco.ID);
Но в этом случае я ищу со свойством, поэтому я предполагаю, что это не O (1).Нужно ли реализовывать интерфейс ICompare?
Спасибо.