Только первый запрос с Where
является запросом к базе данных.Как только вы примените «жадный» оператор, такой как FirstOrDefault
, запрос будет выполнен.Второй запрос выполняется в памяти.Если Object.Table2
является коллекцией (что, по-видимому, и есть) и у вас не включена отложенная загрузка, ваш код вылетает, потому что коллекция null
.Если у вас включена отложенная загрузка, второй запрос выполняется без вывода сообщений для загрузки коллекции - коллекция complete и фильтр выполняются в памяти.
Вместо этого ваш запрос должен выглядеть как код @ adrift, которыйдействительно будет только один запрос к базе данных.