collection.Contains
сгенерирует .. WHERE CarrierId IN (1, 2, 3)
sql запрос
var carrierIds = userModel.Carriers.Select(carrier => carrier.Id).ToArray();
var divisions = db.CarrierDivision
.Where(division => carrierIds.Contains(division.CarrierId))
.ToArray();
В случае, если db.CarrierDivision
вернет IEnumerable
(не база данных), я бы предложил создать HashSet
идентификаторов операторов ,
var carrierIds = userModel.Carriers.Select(carrier => carrier.Id).ToHashSet();
var divisions = db.CarrierDivision
.Where(division => carrierIds.Contains(division.CarrierId))
.ToArray();
При HashSet
поиск выполняется без дополнительных перечислений - O (1)