c# - 我可以看到 SQL/正在使用 L2S 有效地更新多条记录吗?

标签 c# sql-server linq-to-sql

我刚刚做了以下事情:

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/

相关文章:

c# - LINQ to SQL 其中 ID 不在 some_list 中

sql-server - 如何将 SQL Server 数据库从一台本地 PC 移动到另一台本地 PC?

php - USE | 之间有什么区别? select_db 函数或 TABLE NAME.dbo?

sql-server - 从 SQL Server 中的动态查询中获取选择列名称

linq-to-sql - Linq to SQL 扩展性方法定义

c# - 如何在本地运行设置mvc网站

c# - 是否可以将数据绑定(bind)到枚举并显示用户友好的值?

c# - 错误运算符 '=='无法应用于 'char'和 'string'类型的操作数

c# - Linq to SQL C# 获取所有子/子子类别中的产品太慢

c# - LINQ 多对多关系 : Solution?