我有一个包含以下法典的MSSQL程序:
SELECT Id, Role, JurisdictionType, JurisdictionKey
FROM
dbo.SecurityAssignment WITH(UPDLOCK, ROWLOCK)
WHERE Id = @UserIdentity
我试图将同一行为移至使用OlegDb联系、指挥和交易实现同样结果的组成部分。 (它是一个使用上文所示安保安排表的安全构成部分。) 我想要的是,这个表格是否位于MSSQL、Oracle或Db2。
鉴于上述情况,如果我使用以下代码进行测试的话。
Thread backgroundThread = new Thread(
delegate()
{
using (var transactionScope = new TrasnsactionScope())
{
Subject.GetAssignmentsHavingUser(userIdentity);
Thread.Sleep(5000);
backgroundWork();
transactionScope.Complete();
}
});
backgroundThread.Start();
Thread.Sleep(3000);
var foregroundResults = Subject.GetAssignmentsHavingUser(userIdentity);
Where Subject.GetAssignmentsHavingUser runs the sql above and returns a collection of results and backgroundWork is an Action that updates rows in the table, like this:
delegate
{
Subject.UpdateAssignment(newAssignment(user1, role1));
}
Then the foregroundResults returned by the test should reflect the changes made in the backgroundWork action.
也就是说,我找回一份列有UPDLOCK、ROWLOCK应用的安全安排表浏览器清单,以及随后对这些浏览点的询问,直到这一更新的24小时获释为止,因此测试的地下结果包括背景图中所作的更新。
这一切都是罚款。
现在,我要与数据库分析一样,利用OlegDb交易和孤立水平实现同样的结果。 这对我来说,是怎样做的。 是否甚至有可能,或者这种滚动的锁定只适用于干 the级?