DB2实体框架事务隔离“WITH UR”

时间:2012-03-18 00:43:45

标签: c#-4.0 entity-framework-4 db2

我试图在每个进入db2的查询中使用“ WITH UR ”。有人知道如何在db2 ef4中使用事务隔离吗?我希望linq为我创建一个以下查询:

从Payroll.Employees WITH UR选择EmployeeID;

注意:我已经尝试使用.net framework 4.0中提供的TransactionScope;它根本没用。

1 个答案:

答案 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();
        }
    }
}