0

我正在执行从 LINQ 到 SQL 的更新存储过程,我需要知道调用更新后受影响的记录。

我正在使用 dbml 设计器来生成 LINQ 代码。

4

4 回答 4

1

我没有尝试任何答案,也不知道哪个是正确答案。我@@rowcount作为结果集返回。

于 2010-09-15T06:10:20.150 回答
1

您是否尝试过DataContext.GetChangeSet?例如,这将返回更新计数:

linqDbContenxt.GetChangeSet().Updates.Count
于 2010-08-18T06:08:49.927 回答
0

一种方法是将更新的行写出到表中,然后使用 Linq-to-SQL 再次读取表:

UPDATE dbo.YourTable
SET columns = values
OUTPUT INSERTED.ID, INSERTED.column1, INSERTED.column2   -- etc. whatever you need
INTO dbo.OutputTable(.....) 

当然,您需要dbo.OutputTable事先创建它。运行此操作后,您的输出表将包含已更新的值。您可以像读取 Linq-to-SQL 中的任何常规表一样读取该表。

于 2010-08-18T06:09:49.700 回答
0

您可以为 dbml 中的每个对象类型创建另一个部分类,并挂钩各种公开的方法,例如 OnCreated 等。您可以在更新时创建自己的方法,并在实际对象发生时记录修改、创建或删除的项目

于 2010-08-18T06:10:40.930 回答