【问题标题】:Linq To SQL: Why is disposing and recreating a DataContext way faster than refreshing it?Linq To SQL:为什么处理和重新创建 DataContext 比刷新它更快?
【发布时间】:2009-08-14 07:20:28
【问题描述】:

我注意到处理和重新创建 DataContext 比使用 RefreshMode.OverwriteCurrentValues 刷新它要快得多,这实际上应该是相同的。

虽然这会导致我的应用程序在几秒钟内以 100% 的 CPU 达到峰值

dbc.Refresh(RefreshMode.OverwriteCurrentValues, dbc.Property);

以下代码甚至不会占用 50% 的 CPU,并且只需要大约一秒钟:

dbc.Dispose();
dbc = new PropertyManagementDataContext();

同时还覆盖我所有的本地更改并仅从数据库更新我的本地数据。还是我忽略了什么?

为了从数据库中获取最新数据而处置和重新创建 DataContext 是否有任何危险?

【问题讨论】:

    标签: c# performance linq-to-sql optimization


    【解决方案1】:

    Refresh() 实际上是往返于数据库。处理和重新创建上下文是使用本地缓存的连接信息。这样会更快。

    编辑:
    此外,根据docs,您可能出于错误的原因使用 Refresh() 。见底部备注。

    【讨论】:

      猜你喜欢
      • 2012-05-20
      • 2011-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多