Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用事务时延迟加载内容_C#_Asp.net_Transactions - Fatal编程技术网

C# 使用事务时延迟加载内容

C# 使用事务时延迟加载内容,c#,asp.net,transactions,C#,Asp.net,Transactions,在使用事务编辑内容时,我觉得加载内容有点延迟, (测试这种情况对我来说有点困难,因为我不知道如何才能更好地测试它) 我对交易用法有一些疑问: 关于交易,我应该了解一些小问题和事情 这些部分与这个问题有关: 我们什么时候应该在自制的CMS中使用事务处理? 我的个案说明: 我是否应该在任何CMS上使用事务,而我们在插入、更新、检索等方面有存储过程 当我们处理多个表时,是否有必要使用事务 我使用的交易策略是: 添加产品方法(使用添加产品存储过程): TransactionOpt

在使用事务编辑内容时,我觉得加载内容有点延迟, (测试这种情况对我来说有点困难,因为我不知道如何才能更好地测试它)

我对
交易
用法有一些疑问:

关于交易,我应该了解一些小问题和事情 这些部分与这个问题有关:

我们什么时候应该在自制的CMS中使用事务处理?

我的个案说明:

  • 我是否应该在任何CMS上使用事务,而我们在插入、更新、检索等方面有存储过程
  • 当我们处理多个表时,是否有必要使用事务
  • 我使用的交易策略是:

    添加产品方法(使用添加产品存储过程):

                TransactionOptions txOptions = new TransactionOptions();
                using (TransactionScope txScope = new TransactionScope
                  (TransactionScopeOption.Required, txOptions))
                {
                    try
                    {
                        connection.Open();
                        command.ExecuteNonQuery();
                        LastInserted = (int)pInsertedID.Value;
                        txScope.Complete();                        
                    }
                    catch (Exception ex)
                    {
                        logErrors.Warn(ex.Message);
                    }
                    finally
                    {
                        command.Dispose();
                        connection.Close();
                    }
    

    事务可能有助于确保数据库的一致性。例如,如果用于添加产品的存储过程在多个表中插入数据,并且在过程中出现故障,则事务可能有助于回滚整个操作,因此数据库中没有未完成的产品(例如,相关表中缺少一些关键信息)

    事务作用域(
    TransactionScope
    )用于为代码块内运行的任何代码提供环境隐式事务。这些作用域可能有助于大大简化代码,但是,它们也可能会增加多线程环境中的复杂性(不幸的是,我不太了解这种情况)


    因此,您提供的代码可能有助于确保数据库的一致性,特别是当命令使用多个表时。它可能会增加一些性能开销;但是,在进行任何优化之前,最好依靠收集的分析数据,而不是任何感觉(即,尝试收集一些定量数据,以了解事务处理的速度有多慢)。现代数据库引擎通常非常高效地处理事务;根据我自己的经验,由于它们的性能开销,没有要删除的事务。

    谁制作了CMS并不太相关。您似乎只更新了1个表,因此tx在此不执行任何操作。