我试图在每个进入db2的查询中使用“ WITH UR ”。有人知道如何在db2 ef4中使用事务隔离吗?我希望linq为我创建一个以下查询:
从Payroll.Employees WITH UR选择EmployeeID;
注意:我已经尝试使用.net framework 4.0中提供的TransactionScope
;它根本没用。
答案 0 :(得分:0)
假设sDB2ConnectionString是用于连接DB2的字符串。
隔离级别在Transaction上指定,但Transaction.IsolationLevel属性是readonly。您只能在创建交易时进行设置。
为简单起见,我使用了对没有参数的存储过程的调用。当然,您可以将任何类型的DB2Command放在事务范围内。
// string sDB2ConnectionString = ConfigurationManager.AppSettings[environment + "_ConnectionString"];
using ( DB2Connection conn = new DB2Connection( sDB2ConnectionString ) )
{
conn.Open();
using ( DB2Transaction tran = conn.BeginTransaction( IsolationLevel.ReadUncommitted ) )
{
using ( DB2Command dbCommand = conn.CreateCommand() )
{
dbCommand.Transaction = tran;
dbCommand.CommandType = CommandType.StoredProcedure;
dbCommand.CommandText = "MySchema.MyStoredProcedureName";
dbCommand.ExecuteNonQuery();
tran.Commit();
}
}
}