在实体框架中未提交事务时表锁定



我提出了一个场景,其中我使用C#中的实体框架使用事务保存数据。表在未提交时锁定。我正在使用以下代码来保存数据。

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中的表中进行选择查询时,直到事务提交,它才会显示结果。

在使用事务时,是否有任何方法可以避免表锁定?

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

最新更新