Да, избегайте ленивой загрузки. Период.
Проблема в том, что, возвращаясь к каждой когда-либо созданной ORM, проблема заключается в том, что если вы выполняете отложенную загрузку, то каждая ссылка является отложенной загрузкой. Это 1+ поездки туда и обратно (по одному на собственность, минимум). Отдельное выполнение SQL, отдельное сетевое время. Это складывается очень быстро.
Именно поэтому каждый написанный ORM поддерживает не ленивую загрузку в варианте EF с помощью операторов .Include, которые либо расширяют SQL, либо генерируют отдельный SQL (например, core, tolist для материализации отношений с эффективным sql).
Если вы настаиваете на использовании отложенной загрузки - как и подразумевает ваш вопрос, то нет никакой волшебной пыли, которую вы распространяете по своему коду, чтобы избежать скрытых негативных последствий отложенной загрузки.
Теперь, добавляя к этому, любое ядро EF до версии 3.0 сломано настолько, насколько это возможно. И да, это 3.0 - даже не 2.2. Видите, есть множество проблем с различными частями, в том числе довольно простой LINQ. И производительность. По крайней мере, 2,2 (ожидается через месяц) должно решить некоторые проблемы. А пока попробуйте использовать .Include и AsNoTracking - потому что в IIRC есть ошибка производительности, которая также может поразить вас при загрузке 200 тыс. Строк.