GetChangeSet ChangeSet,Linq将应用哪些更改顺序?

时间:2009-05-15 18:55:14

标签: c# .net linq changeset submitchanges

我正在运行代码以在linq提交更改调用之前获取更改集。

private void OnSubmitHandleReplication()
{
    System.Data.Linq.ChangeSet changes = GetChangeSet();
    //Do something with change set
}

在do something部分中,我需要知道提交的内容是什么,以及它们将在数据库中发布的顺序。我看到更改集有一个.Inserted,.Updated和.Deleted。我假设它们按照它们将被应用的顺序排列。但是我想知道所有的顺序。我假设它可能是插入,更新,然后是3个插入,或者涉及在这些集合之间来回反弹的东西。

更新1

很抱歉,认为标题很明确,Linq to SQL

更新2

我这样做的原因是稍后将这些重播到另一个数据库。

2 个答案:

答案 0 :(得分:0)

这非常棘手。

您需要通过反射深入挖掘更改跟踪器才能获得实际订单。

关于插入,更新,删除的顺序,插入在删除之前发生,因此您需要注意独特的约束(这可能意味着您需要更新而不是重新创建)。

修改

如果您只需要'重播',肯定可以使用日志记录功能。

答案 1 :(得分:0)

您可以通过设置YourDataContext.Log = Console.Out或任何其他兼容的输出流来启用Linq2SQL中的日志记录。 LINQ发送到数据库的每个SQL查询都将在那里打印。你应该只使用它来调试你的问题,因为LINQ发送了很多查询:)

编辑:关于行动的顺序,我不能再帮助你了,我从来没有看过这些问题。