У меня есть список элементов флажков на html-странице, все из которых можно выбрать и с разными идентификаторами, и их идентификаторы отправляются через HTTP POST в мой API. В целях безопасности мне нужно проверить, является ли какой-либо из отправленных идентификаторов недействительным. Это просто метод, который возвращает false, если какой-либо из этих идентификаторов не существует в моей базе данных, и возвращает true, если все они существуют.
Сначала это выглядело легко, но я не нашел способа вернуть этот результат из моей базы данных напрямую, используя EF Core. Мне всегда нужно сравнивать Count
моего результата запроса с моим списком Count
.
Мой лучший подход был:
public async Task<bool> IsIdListValid(IEnumerable<int> idList) =>
(await _context.Foo
.Select(x => x.Id)
.CountAsync(id => idList.Contains(id))
) == idList.Distinct().Count();
Итак, я спрашиваю: есть лучший способ написать этот запрос, более читаемый и производительный?