Я работаю над приложением, которое получает пользовательские данные с REST-сервера и записывает их в локальную базу данных с использованием C # и ADO.NET (около 100000 строк). База данных MYSQL.
Для этого я создал две таблицы.
ТАБЛИЦА А и
ТАБЛИЦА B
Таблица B имеет ссылку внешнего ключа на таблицу A.
При синхронизации данных я получаю сообщение об ошибке внешнего ключа, поскольку данные не полностью записываются в таблицу A, когда приложения пытаются получить внешний ключ.
Я не использую DataAdapter или Dataset, просто ADO.NET. -> Это должно быть максимально быстро и просто.
Это работает, когда я делаю небольшую задержку после записи в таблицу A и перед записью в таблицу B, но это только временное решение и не очень надежное.
using (var connection = new MySqlConnection(config.GetConnectionString("DefaultConnection")))
{
connection.Open();
using (var cmd = new MySqlCommand(userInsert, connection))
{
cmd.ExecuteNonQuery();
}
}
Thread.Sleep(600);
using (var connection = new MySqlConnection(config.GetConnectionString("DefaultConnection")))
{
connection.Open();
using (var cmd = new MySqlCommand(cardInsert, connection))
{
cmd.ExecuteNonQuery();
}
}
Я также поместил две транзакции в одну транзакцию, но безуспешно.
У кого-нибудь есть лучшее решение?