事务框架中未提交事务时表锁定?

时间:2016-03-27 12:21:51

标签: c# .net entity-framework

我想出了一个场景,我在C#中使用Entity Framework使用事务保存数据。表锁定时没有提交。我使用下面的代码来保存数据。

tblCharge obj = new tblCharge();
obj.Plan = "DD";
obj.TotalAmount = 1500;

// Opening transaction
using (System.Data.Common.DbTransaction transaction((IObjectContextAdapter)dbContext).ObjectContext.Connection.BeginTransaction())
{
     dbContext.tblCharges.Add(obj);
     dbContext.SaveChanges();
     transaction.Commit();
}

当我在提交之前保存数据并从SQL Server中的表中进行选择查询时,它不会显示结果直到事务提交。

使用事务时是否有任何方法不会发生表锁定?

1 个答案:

答案 0 :(得分:1)

关系数据库中的事务的全部要点是使对数据库执行的更改对其他事务不可见,直到提交事务为止。因此,要回答您的问题,在提交事务之前不可能将结果显示给其他查询,因为这会违反事务的主要定义。