Просто к сведению, кроме отложенной загрузки, есть еще одна причина, по которой активность базы данных может не происходить, когда вы ожидаете этого при использовании LINQ. Например, если я немного изменю ваш пример кода:
DBContext db = new DBContext();
var orders = (from o in db
where o.OrderID == "qwerty-asdf-xcvb"
select o);
var order = orders.FirstOrDefault();
String _custName = _order.Customer.Name +" "+_order.Customer.Surname;
Кто-то, кто не знает, как работает LINQ, может ожидать, что все ордера извлекаются из базы данных при выполнении второй строки кода. Фактически, LINQ задерживает запрос к базе данных до последнего возможного момента, который в этом случае является вызовом FirstOrDefault. Конечно, на данный момент LINQ знает, что нужно извлечь не более одной записи.