【问题标题】:DB2 Entity Framework Transaction Isolation "WITH UR"DB2 实体框架事务隔离“WITH UR”
【发布时间】:2012-04-03 01:07:30
【问题描述】:

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

SELECT EmployeeID FROM Payroll.Employees WITH UR;

注意:我已经尝试过使用.net framework 4.0 中提供的TransactionScope;一点用都没有。

【问题讨论】:

  • 如果您的提供程序没有通过一些显式配置提供此设置,那么如果不为 DB2 编写自己的 EF 提供程序,您将无法在通用级别上实现该设置。
  • 你有没有想过这个问题?我有完全相同的问题,但没有得到任何地方。

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


【解决方案1】:

假设 sDB2ConnectionString 是您用来连接 DB2 的字符串。

隔离级别是在 Transaction 上指定的,但 Transaction.IsolationLevel 属性是只读的。只能在创建事务时设置。

为简单起见,我使用了对不带参数的存储过程的调用。当然,您可以将任何类型的 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();
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多