我希望在我的项目中使用TransactionScope
。我了解到它可以在数据库中创建隐式事务。我想知道这个TransactionScope
是否会锁定它操作的表?
例如,在以下代码中:
using (Entities ent = new Entities())
{
using (TransactionScope tran = Common.GetTransactionScope())
{
var oldRecords = ent.tblUser.Where(o => o.UserID == UserID);
foreach (var item in oldRecords)
{
ent.tblUser.DeleteObject(item);
}
并且。
public static TransactionScope GetTransactionScope()
{
TransactionOptions transactionOptions = new TransactionOptions();
transactionOptions.IsolationLevel = System.Transactions.IsolationLevel.Serializable;
return new TransactionScope(TransactionScopeOption.Required, transactionOptions);
}
tblUser
在发出Complete
命令之前被锁定吗?
显式事务中的IsolationLevel
是否类似于隐式事务?
谢谢
ID=1
的记录,并且在那个时候另一个线程想要读取ID=1
会发生什么?你说我应该获得独占锁,但是TransactionScope
会获得隐式锁吗? - Arian