0

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

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

在“做某事”部分,我需要知道提交内容的顺序,以及它们将发布到数据库的顺序。我看到更改集有一个 .Inserted、.Updated 和 .Deleted。我假设这些是它们将被应用的顺序。但是我想知道总体顺序。我认为它可能是插入、更新,然后是另外 3 个插入,或者涉及在这些集合之间来回反弹的东西。

更新 1

对不起,以为标题很清楚,Linq to SQL

更新 2

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

4

2 回答 2

0

这是相当棘手的。

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

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

编辑

如果您只需要“重播”,那么您当然可以使用日志记录功能。

于 2009-05-15T19:09:22.297 回答
0

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

编辑:关于动作的顺序,我不能再帮你了,我从来没有比我必须的更多地查看这些查询。

于 2009-05-15T19:19:45.763 回答