锁定语句中的数据更新和插入

时间:2017-07-03 15:27:34

标签: c# asp.net sql-server

我正在使用APS.NET MVC应用程序,该应用程序通过Entity Framwork向SQL Server发送插入和更新。

我的问题是,在“lock(_object)”块中放置一个DataContext语句(读取,插入或更新)是否明智。

例如,像这样的一般模式:

public class EventReporterExample
{
    private readonly object _privateObject = new object();

    public void UpdateValueExample(int value)
    {
        try
        {
            lock (_privateObject)
            {
                ReportingDataContext dataContext = new ReportingDataContext(sqlCnxn);

                var exampleData = ( //get the row via LINQ from dataContext ).Single();
                exampleData.Value = value;

                dataContext.SubmitChanges();
                dataContext.Dispose();
            }
        }
        catch (Exception e)
        {
            // etc.
        }
    }
}

是否通过管理并发问题的池处理数据库连接?

我问,因为我们网站中的更多错误与我将锁定语句从“lock(this)”更改为“lock(_privateObject)”之间似乎存在关联,其中“this”是,当然,这个公共类用于将Web应用程序中的事件记录到数据库中。

每天的错误数通常为零,很少达到1-3。在我改变之后,它通常在10左右,但有时每天高达90。我们每天看到大约80,000名访客。

0 个答案:

没有答案