我正在运行代码以在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
我这样做的原因是稍后将这些重播到另一个数据库。
答案 0 :(得分:0)
这非常棘手。
您需要通过反射深入挖掘更改跟踪器才能获得实际订单。
关于插入,更新,删除的顺序,插入在删除之前发生,因此您需要注意独特的约束(这可能意味着您需要更新而不是重新创建)。
修改强>
如果您只需要'重播',肯定可以使用日志记录功能。
答案 1 :(得分:0)
您可以通过设置YourDataContext.Log = Console.Out
或任何其他兼容的输出流来启用Linq2SQL中的日志记录。
LINQ发送到数据库的每个SQL查询都将在那里打印。你应该只使用它来调试你的问题,因为LINQ发送了很多查询:)
编辑:关于行动的顺序,我不能再帮助你了,我从来没有看过这些问题。