искать ключевое свойство навигации O (1)? - PullRequest
0 голосов
/ 12 июня 2018

У меня есть сущность 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?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...