我们如何在C#中使用dapper插入到oracle中的多个表中

How can we insert into multiple tables in oracle using dapper in C#

我有 3 个 Table。 Table_main(初级key-pk_main) Table A- (PRimary key - PK_A) 并且 pk 是外键。 Tab B-(主键 - PK_B)和 PK_A 是外键。

我们可以使用 Dapper 来实现吗? 还有一个查询?

如果不能,可以通过只打开一次数据库连接来完成,而不是针对不同的 table 插入多次。

您不能使用单个查询插入多个表。但是,您可以在单个连接中插入。

public IDbconnection OpenDbConnection()
{
    var dbconnection = new OracleConnection();
    if(dbconnection.State == ConnectionState.Closed)
    {
        dbconnection.Open();
    }
}
public void BeginTrans()
{
    _db = OpenDbConnection(ConnectionStringHere);
    _tran = _db.BeginTransaction();
}

public void CommitTrans()
{
    _tran.Commit();
    if(_db.State == ConnectionState.Open)
        _db.Close(); // close db connection
}
public void RollbackTrans()
{
    _tran.Rollback();
    if(_db.State == ConnectionState.Open)
        _db.Close(); // close db connection
}

您可以使用接口(例如 IDbInterface、DbClass)在同一个 class 中编写这些方法。您可以在构造函数中注入两个属性 _db 和 _tran。

您可以将这些方法用作

try
{
   // BeginTrans method 
   Your logic and queries
   // CommitTrans
}
catch
{
   //RollbackTrans
}