代码之家  ›  专栏  ›  技术社区  ›  IsmailS

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

  •  0
  • IsmailS  · 技术社区  · 14 年前

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

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

    4 回复  |  直到 14 年前
        1
  •  1
  •   Buu    14 年前

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

    linqDbContenxt.GetChangeSet().Updates.Count
    
        2
  •  1
  •   IsmailS    14 年前

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

        3
  •  0
  •   marc_s dmck    14 年前

    一种方法是将更新后的行写出到表中,然后用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 在手之前。运行此操作后,输出表将包含已更新的值。您可以像LINQtoSQL中的任何常规表一样读取该表。

        4
  •  0
  •   griegs    14 年前

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