c# - 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();
}
}
我也把这两个事务放在一个事务中,但没有成功。
有没有人有更好的解决方案?
解决方案
推荐阅读
- jquery - Jquery Ajax Call Rest API 响应为 200 但它抛出错误
- wordpress - 为 WP get_users() 在 args 中设置元值的长度
- javascript - 如何在 React 中淡出和淡入?
- linux - 如果谷歌云控制台工具出现错误,请在 linux 脚本中重复命令
- docker - Dockerfile:`curl` 命令无法保存文件
- tcp - 如何通过单个网络连接有效地发送大文件?
- sql - 如果没有包含 where 条件的行,SQL 计数显示 0
- python - 使用笨拙的嵌套字典中的锯齿状列表中的过滤元素
- python - Open3d(Python),如何从 .ply 中删除点
- python - Python 是否支持按列声明矩阵?