C # ADO.NET пишет первичный ключ перед внешним ключом - PullRequest
0 голосов
/ 07 сентября 2018

Я работаю над приложением, которое получает пользовательские данные с 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();
    }    
}

Я также поместил две транзакции в одну транзакцию, но безуспешно.

У кого-нибудь есть лучшее решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...