如何获取记录受LINQ to SQL中的更新存储过程影响

问题描述:

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

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

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

你试过DataContext.GetChangeSet?例如,这将返回更新计数:

linqDbContenxt.GetChangeSet().Updates.Count 

一种方式做,这是写出来更新到表中的行,然后再次读取该表的LINQ到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等。您可以自己创建更新并保存项目的修改,创建或删除日志到实际的对象