同时插入多个表?

时间:2018-01-12 13:54:09

标签: c# oracle dapper

我的项目正在使用Dapper连接到Oracle数据库实例。在代码的一个关键部分,我们需要进行大量的数据插入。表格结构如下:

* Table_Master
  - ID (PK)
  - ... Unrelated fields ...
* Table_A
  - ID (PK)
  - FK_Table_Master
  - ... Unrelated fields ...
* Table_B
  - Same structure as table A

由于唯一的链接是A --> MasterB --> Master,只要我将密钥放入主表,我就可以同时插入表A和B的数据。是否可以在Dapper中的相同数据库上下文中执行此操作?例如,我可以同时执行多个

context.Execute("INSERT INTO ...")

在不同的线程?我会进行一些测试,看看我是否遇到过任何不同寻常的事情,但我想知道是否有人曾经尝试过这个以及他们取得了什么成果。关于将上下文共享到多个线程中似乎没有太多文档。

1 个答案:

答案 0 :(得分:3)

在Oracle中,您可以使用一个INSERT ALL语句作为

插入到多个表中
insert all 
  into tab_1 (col1, col2) values (1, 2)
  into tab_2 (col8, col3) values ('a', 'x')
  ...
select * from dual;