Linq To SQL:为什么以刷新方式更快地处理和重新创建DataContext?

时间:2009-08-14 07:20:28

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

我注意到,处理和重新创建DataContext比使用RefreshMode.OverwriteCurrentValues刷新它更快,这应该是有效的。

虽然这会导致我的应用程序在100%CPU上飙升几秒钟

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

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

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

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

为了从数据库中获取最新数据,是否存在处置和重新创建DataContext的危险?

1 个答案:

答案 0 :(得分:1)

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

编辑:
另外,根据docs你可能因为错误的原因而使用Refresh()。看到底部的评论。