Длинный ответ:
var vendorIds = new int[] { 1, 17 };
_context
.Orders
.Join(_context.Orderitems,
o => o.Orderid,
oi => oi.Orderid,
(o, oi) => new { o, oi })
.Join(_context.Vendorparts,
o_oi => o_oi.oi.Inventoryid,
vp => vp.Inventoryid,
(o_oi, vp) => new { o_oi.o, o_oi.oi, vp })
.Where(o_oi_vp => _context.Vendorparts
.Where(vp
=> vp.Inventoryid == o_oi_vp.vp.Inventoryid
&& vendorIds.Contains(vp.Vendorid))
.Join(_context.Vendors.Where(v => v.Candropship),
vp => vp.Vendorid,
v => v.Vendorid,
(vp, v) => new { vp, v })
.Any())
.Select(o_oi_vp => new {
o_oi_vp.oi.orderid,
o_oi_vp.oi.inventoryid,
o_oi_vp.vp.vendorid
});
Краткий ответ: используйте хранимую процедуру.