首页 > 解决方案 > C# ADO.NET 在外键之前写入主键

问题描述

我正在开发一个从 REST 服务器获取用户数据并使用 C# 和 ADO.NET(大约 100000 行)将其写入本地数据库的应用程序。数据库是MYSQL。为此,我创建了两个表。表 A 和表 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();
    }    
}

我也把这两个事务放在一个事务中,但没有成功。

有没有人有更好的解决方案?

标签: c#mysqlsqldatabaseado.net

解决方案


推荐阅读