Используйте внутреннее объединение, чтобы убедиться, что возвращенные записи клиента связаны с заказом. Если у клиента нет совпадающих заказов, этот клиент не будет отображаться в результатах.
from customer in myContext.Customers
join order in myContext.OrderDetails on order.CustID equals customer.CustID
select customer;
Используйте левое внешнее объединение, если вы намерены возвращать записи клиентов, даже если они не связаны с какими-либо заказами.
from customer in myContext.Customers
join order in myContext.OrderDetails on order.CustID equals customer.CustID into customerGroup
from record in customerGroup.DefaultIfEmpty(new Customer())
select customer;
В левом внешнем соединении возвращаются все элементы в левой исходной последовательности, даже если в правой последовательности нет соответствующих элементов. Чтобы выполнить левое внешнее объединение в LINQ, используйте метод DefaultIfEmpty в сочетании с групповым соединением, чтобы указать правый элемент по умолчанию, который будет создаваться, если у левого элемента нет совпадений. Вы можете использовать null в качестве значения по умолчанию для любого ссылочного типа или указать пользовательский тип по умолчанию.
Наконец, вы смешиваете Linq и Lambda в своем примере. В качестве лучшей практики вы можете использовать одну или другую;если вы предпочитаете, вот лямбда-эквивалент для примера внутреннего соединения:
myContext.Customers
.Join(myContext.OrderDetails,
customer => customer.CustID,
order => order.CustID,
(customer, order) => customer);
HTH