【问题标题】:How to get records affected by an update stored procedure in LINQ to SQL如何获取受 LINQ to SQL 中更新存储过程影响的记录
【发布时间】:2010-08-18 06:01:49
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net linq linq-to-sql rows-affected


    【解决方案1】:

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

    linqDbContenxt.GetChangeSet().Updates.Count
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        执行此操作的一种方法是将更新的行写出到表中,然后使用 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 中的任何常规表一样读取该表。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 2010-11-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-10-30
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多