我们如何在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
}
我有 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
}