0

linq submit changes 呼び出しの直前に変更セットを取得するコードを実行しています。

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

何かを行うセクションでは、物事が送信された順序と、データベースに投稿される順序を知る必要があります。変更セットには、.Inserted、.Updated、.Deleted があることがわかります。これらは適用される順序になっていると思いますが、全体的な順序を知りたいです。挿入、更新、さらに 3 回の挿入、またはこれらのコレクション間を行ったり来たりする必要があると思います。

更新 1

申し訳ありませんが、タイトルは明らかだと思いました、Linq to SQL

更新 2

私がこれを行っている理由は、これらを後で別の DB に再生するためです。

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 に答える