【发布时间】:2010-08-18 06:01:49
【问题描述】:
我正在执行从 LINQ 到 SQL 的更新存储过程,我需要知道调用更新后受影响的记录。
我正在使用 dbml 设计器来生成 LINQ 代码。
【问题讨论】:
标签: asp.net linq linq-to-sql rows-affected
我正在执行从 LINQ 到 SQL 的更新存储过程,我需要知道调用更新后受影响的记录。
我正在使用 dbml 设计器来生成 LINQ 代码。
【问题讨论】:
标签: asp.net linq linq-to-sql rows-affected
你试过DataContext.GetChangeSet吗?例如,这将返回更新计数:
linqDbContenxt.GetChangeSet().Updates.Count
【讨论】:
我没有尝试任何答案,也不知道哪个是正确答案。我返回了@@rowcount 作为结果集。
【讨论】:
执行此操作的一种方法是将更新的行写出到表中,然后使用 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 等。您可以在更新时创建自己的方法,并在项目发生时保留修改、创建或删除的日志实物
【讨论】: