Если бы это был мой проект, я бы разбил задачи в следующем порядке.
Сначала запустите пустое консольное приложение.
Затем напишите метод, который получаетсписок пользователей из API.Вы ничего не рассказали нам об API, поэтому вот фиктивный пример, который использует HTTP-клиент.
public async Task<List<User>> GetUsers()
{
var client = new HttpClient();
var response = await client.GetAsync("https://SomeApi.com/Users");
var users = await ParseResponse(response);
return users.ToList();
}
Проверьте вышеупомянутое (например, напишите небольшой небольшой код для его запуска и выгрузитерезультаты, или что-то), чтобы убедиться, что он работает независимо.Прежде чем двигаться дальше, необходимо убедиться, что он твердый.
Затем создайте временную таблицу (или таблицы), которая соответствует схеме объектов данных, возвращаемых из API.А пока вы просто захотите сохранить его точно так, как вы его извлекаете.
Затем напишите некоторый код для вставки записей в таблицы.Опять же, проверьте это независимо и просмотрите данные в таблице, чтобы убедиться, что все работает правильно.Это может выглядеть примерно так:
public async Task InsertUser(User user)
{
using (var conn = new SqlConnection(Configuration.ConnectionString))
{
var cmd = new SqlCommand();
//etc.
await cmd.ExecuteNonQueryAsync();
}
}
Когда вы знаете, как извлечь данные и сохранить их, вы можете закончить код, чтобы извлечь данные из API и вставить их.Это может выглядеть примерно так:
public async Task DoTheMigration()
{
var users = await GetUsers();
var tasks = users.Select
(
u => InsertUser(u)
);
await Task.WhenAll(tasks.ToArray());
}
В качестве последнего шага напишите серию хранимых процедур или пакет DTS, чтобы переместить данные из временных таблиц в их окончательное место покоя.Если вы используете MS Access, вы можете написать серию запросов и выполнить их по порядку с некоторым VBA.На высоком уровне это будет:
Проверить все записи, которые существуют в временной таблице, но отсутствуют в финальной таблице, и вставить их в финальную таблицу.
Проверьте все записи, которые существуют в финальной таблице, но не являются временной таблицей, и удалите их или пометьте их как удаленные.
Проверьте все общие записи, которые имеют разныезначения столбцов и обновите итоговую таблицу.
Каждое из этих действий по разработке, конечно, поднимает свой собственный набор вопросов, которые вы можете отправить обратно в StackOverflow с подробностями.Поскольку у вашего вопроса недостаточно подробностей для более глубокого ответа.