Одной из основных целей EF является сопоставление отношений между сущностями, чтобы вы могли использовать LINQ и позволить EF составлять SQL-запрос, а не пытаться заменить SQL на LINQ-QL.
Если ваш ShippingBatch сопоставленс коллекцией ShippingOrders ...
var batches = _context.ShippingBatch
.Where(x => x.IdCompany == idCompany && x.IdDealer == idDealer)
.Select(x => new ShippingBatchDTO
{
IdShippingBatch = x.IdShippingBatch,
BookingNumber = x.BookingNumber,
ShippingOrders = x.ShippingOrders.Count(),
CreatedOn = x.CreatedOn,
ModifiedOn = x.ModifiedOn
}).ToList();
Если ваш ShippingBatch не имеет коллекции ShippingOrders, но ваш ShippingOrder ссылается на необязательный ShippingBatch.
var batches = _context.ShippingOrder
.Where(x => x.ShippingBatch != null
&& x.ShippingBatch.IdCompany == idCompany
&& x.ShippingBatch.IdDealer == idDealer)
.GroupBy(x => x.ShippingBatch)
.Select(x => new ShippingBatchDTO
{
IdShippingBatch = x.Key.IdShippingBatch,
BookingNumber = x.Key.BookingNumber,
ShippingOrders = x.Count(),
CreatedOn = x.Key.CreatedOn,
ModifiedOn = x.Key.ModifiedOn
}).ToList();
Это, мы надеемся, получит васдвигаясь в правильном направлении.Если нет, расширьте свой вопрос, включив в него подробную информацию о том, что вы видите, и что вы ожидаете увидеть вместе с определениями для соответствующих субъектов.