4
我正在嘗試在每個查詢中使用「WITH UR」。有誰知道如何在db2 ef4中使用事務隔離?我希望linq爲我創建以下查詢:DB2實體框架事務隔離「WITH UR」
從Payroll.Employees中選擇EmployeeID WITH UR;
注意:我已經嘗試使用.net framework 4.0中提供的TransactionScope
;它根本沒有幫助。
我正在嘗試在每個查詢中使用「WITH UR」。有誰知道如何在db2 ef4中使用事務隔離?我希望linq爲我創建以下查詢:DB2實體框架事務隔離「WITH UR」
從Payroll.Employees中選擇EmployeeID WITH UR;
注意:我已經嘗試使用.net framework 4.0中提供的TransactionScope
;它根本沒有幫助。
假設sDB2ConnectionString是用於連接到DB2的字符串。
在事務中指定了隔離級別,但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();
}
}
}
如果您的提供程序不通過某些顯式配置提供此設置,那麼無需爲DB2編寫自己的EF提供程序就無法在通用級別上實現該設置。 – 2012-03-18 08:58:27
你有沒有想過這個?我有完全相同的問題,並沒有得到任何地方。 – 2012-03-27 13:50:32