Проблема в том, что EF не может переводить сложные объекты. EF может переводить только. NET объект памяти в SQL параметрах и использовать эти SQL параметры в запросе SQL.
Я вижу один вариант, который может работать. Поскольку вы ничего не делаете, например, c, кроме простого поиска объединенных значений, вы можете попытаться преобразовать комбинацию user-id / team-id в один параметр SQL. Например, строка со значением '-'. Я предполагаю, что ваши идентификаторы простые числа. Если они строковые, то может потребоваться другой символ-разделитель. Используйте это объединенное значение, чтобы найти любое совпадение в вашем источнике БД.
Код ниже не проверен и может не работать. Альтернативой является создание некоторого вида для создания значения комбинации на стороне базы данных.
var memberIds = teamMembers.Select(tm => $"{tm.UserId}-{tm.TeamId}").ToArray();
await this.dbContext
.UserTeams
.Where(ut => memberIds.Contains(
SqlFunctions.StringConvert((double?)tm.UserId) + "-" +
SqlFunctions.StringConvert((double?)tm.TeamId)
)
)
.ToListAsync();