我的 ASP.NET Web 服务项目中有一个数据表,该数据表中有大约 50 万条记录,有 39 列,并且存在于缓存中。一分钟后,后台线程访问数据库并从数据库中获取更新记录,我想在缓存数据表中更新这些记录,我正在使用以下方法,但它需要足够的时间来完成:
foreach (DataRow dRNew in dtNew.Rows)
{
DataRow row = dtOriginal.Select("ID=" + dRNew["ID"]).First();
row["Column1"] = dRNew["Column1"];
row["Column2"] = dRNew["Column2"];
row["Column3"] = dRNew["Column3"];
}
我已经替换了以下行:
DataRow row = dtOriginal.Select("ID=" + dRNew["ID"]).First();
和
DataRow row = dtOriginal.AsEnumerable().Where(r => ((Int64)r["ID"]).Equals(dRNew["ID"])).First();
但徒劳无功,我的笔记本电脑大约需要 5 分钟。
谁能指导我在哪里以及我做错了什么?使用哪种方法可以有效地做到这一点,我不确定是否Dataset.Merge
可以使用其他方法。