- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有 3 个关于 TransactionScopeOption 的问题。Required 把我逼疯了,我无法在网上找到他们的答案。
A. 我很难思考什么时候我必须在现实中编写这段代码?为什么我不应该将 DoSomething2() 放在 TransactionScope4 之外,放在 TransactionScope3 中?
B. 在这之后:TransactionScope4.Complete(),TransactionScope3 也是 Complete 因为它是同一个 TransactionScope,对吧?
C. 在 WCF 中,当我在客户端中使用 TransactionScope 并在其中调用某些服务的方法时,每个方法都使用我在客户端中创建的 TransactionScope 或创建新的?为什么要创建新的?如果该方法创建新方法,这就是属性:TransactionAutoComplete 存在的原因吗?
using (TransactionScope TransactionScope3 = new TransactionScope())
{
Service1.DoSomething1();
using (TransactionScope TransactionScope4 = new TransactionScope(TransactionScopeOption.Required))
{
Service1.DoSomething2();
TransactionScope4.Complete();
}
TransactionScope3.Complete();
}
最佳答案
记录了一个关键句子here :
The actual work of commit between the resources manager happens at the End Using statement if the TransactionScope object created the transaction. If it did not create the transaction, the commit occurs whenever Commit is called by the owner of the CommittableTransaction object.
所以要回答问题 B,您对 TransactionScope4.Complete()
的调用不会提交事务,因为该 TransactionScope 实例会重新使用 TransactionScope3
的事务。
要回答C,如果您指出 WCF 服务需要一个事务,那么如果客户端上已经创建了一个现有的 TransactionScope,那么 WCF 将不会启动一个新的事务(并且它出于与上述相同的原因,服务调用结束时不会提交)。但是,如果客户端没有打开的 TransactionScope,则 WCF 将启动一个新的,并在服务调用结束时自动提交或回滚。
关于C#/WCF TransactionScopeOption.必需,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10342266/
我目前对 TransactionScope 对象的构造函数感到困惑。 假设我网站的用户可以订购产品。提交请求后,我会验证当前剩余数量,如果仍然大于零,我就会执行该请求。然后,最后我减少当前剩余数量。
在我刚接手的一个应用中发现了这一行,感觉没什么意义。 使用 (new TransactionScope(TransactionScopeOption.Suppress, new TimeSpan(1,
我有 3 个关于 TransactionScopeOption 的问题。Required 把我逼疯了,我无法在网上找到他们的答案。 A. 我很难思考什么时候我必须在现实中编写这段代码?为什么我不应该将
我想回滚名为“scope”的事务,但名为 scope2 的内部事务不应回滚。但是他们都回滚了!!!选项 TransactionScopeOption.Suppress 不起作用... 我已经启用了 D
我相信我理解 TransactionScopeOption.Suppress 和 TransactionScopeOption.Required 但很难理解 TransactionScopeOptio
这里发生了一些非常奇怪的事情。 我只是在我正在调试的一些遗留代码周围添加了一个事务范围,以确保我正在做的摆弄不会被提交。 这工作了两次,然后说: "The transaction manager ha
我正在尝试使用 LINQ TO SQL 在现有事务中执行具有未提交读取隔离级别的查询。如果我使用该选项从父事务中抑制此事务,那么我似乎失去了指定隔离级别的能力。在 LINQPad 中使用此代码: vo
在我的 .NET 代码中,在数据库事务中(使用 TransactionScope ),我可以包含一个带有 TransactionScopeOption.Suppress 的嵌套 block ,这确保嵌
我在使用带有 Entity Framework 和 System.Transactions.TransactionScope 的 Sql Server CE 4 来抑制部分事务时遇到问题。 下面的简化
我是一名优秀的程序员,十分优秀!