Вот как в EF работают навигационные коллекции: при доступе к коллекции загружаются все сущности, а любые запросы linq, которые вы запускаете после этого, просто запрашивают объекты в памяти.Я не думаю, что с этим можно что-то сделать, кроме пользовательского запроса, как вы уже сделали.
FWIW Мне сказали, что NHibernate поддерживает более детализированные навигационные нагрузки, но эта функция еще непроберитесь в Entity Framework.
EDIT
Этот ответ от Ladislav Mrnka показывает возможное решение вашей проблемы в дни ОСАГО.Не уверен, что с тех пор что-то изменилось.Он использует DbContext, так что вы все равно не сможете просто пахать через свойство навигации, но, вероятно, это так близко, как вы собираетесь получить.
int count = context.Entry(myAccount)
.Collection(a => a.Orders).Query().Count();`
или для вашего случая, я 'Я предполагаю, что это будет
TableEntityView obj = context.Entry(TableEntity)
.Collection(a => a.ViewEntity)
.Query().FirstOrDefault(x => x.Id == Id);