Я бы предложил это. Вы можете сделать left outter join
с автомобилями, которые вы получаете от вашего API и существующего. Чем вы получите новые автомобили, которые будут добавлены.
var newCars = (from c in carItems
join e in Entities.CarItems on c.Id equals e.Id into g
from x in g.DefaultIfEmpty()
select new { c, IsNew = x == null }).Where(x = x.IsNew).ToList()
При этом вы делаете только один доступ к базе данных. Кроме того, при работе с IEnumerable
всегда полезно преобразовать его в список или массив. Таким образом, каждый раз, когда вы выполняете итерацию по этому объекту, вы не выполняете запрос в своей базе данных.