我正在执行从 LINQ 到 SQL 的更新存储过程,我需要知道调用更新后受影响的记录。
我正在使用 dbml 设计器来生成 LINQ 代码。
我正在执行从 LINQ 到 SQL 的更新存储过程,我需要知道调用更新后受影响的记录。
我正在使用 dbml 设计器来生成 LINQ 代码。
我没有尝试任何答案,也不知道哪个是正确答案。我@@rowcount
作为结果集返回。
您是否尝试过DataContext.GetChangeSet?例如,这将返回更新计数:
linqDbContenxt.GetChangeSet().Updates.Count
一种方法是将更新的行写出到表中,然后使用 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 中的任何常规表一样读取该表。
您可以为 dbml 中的每个对象类型创建另一个部分类,并挂钩各种公开的方法,例如 OnCreated 等。您可以在更新时创建自己的方法,并在实际对象发生时记录修改、创建或删除的项目