我刚刚做了以下事情:
var items =
from c in Items
where
c.Pid == Campaigns.Where(d=>d.Campaign_name=="US - Autos.com").First().Pid
&& c.Affid == Affiliates.Where(e=>e.Add_code=="CD4729").First().Affid
select c;
然后我想为所有结果更新一个字段:
items.ToList().ForEach(c=>c.Cost_per_unit=8);
SubmitChanges();
查询时,我知道我可以使用:
GetCommand(items);
查看将要执行的 SQL。
但是在提交更改时,我不知道该怎么做。
我看了:
GetChangeSet()
我看到在这种情况下大约有 18 个更新。
问题 1:使用 L2S 以这种方式更新是否存在效率问题?
问题 2(也许这应该是一个单独的问题,但我会在这里尝试):是否有一种通用的方法来监视进入 SQL Server 2008 R2 的 SQL 语句?我想我可以禁用除 TCP 之外的所有实例和 WireShark 端口(如果这些内容甚至可读的话),但我希望有更简单的方法。
最佳答案
DataContext 有一个 Log 属性,您可以 Hook 该属性以转储已执行的 SQL。还有Linq To Sql Profiler这太棒了。
关于c# - 我可以看到 SQL/正在使用 L2S 有效地更新多条记录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5666522/