我的项目正在使用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 --> Master
和B --> Master
,只要我将密钥放入主表,我就可以同时插入表A和B的数据。是否可以在Dapper中的相同数据库上下文中执行此操作?例如,我可以同时执行多个
context.Execute("INSERT INTO ...")
在不同的线程?我会进行一些测试,看看我是否遇到过任何不同寻常的事情,但我想知道是否有人曾经尝试过这个以及他们取得了什么成果。关于将上下文共享到多个线程中似乎没有太多文档。
答案 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;