0

Entity Framework は、ある日付 x の後に追加されたデータベース内のレコードと、ある日付 x の前に追加されたレコードを検出するという点で、何らかの種類の変更追跡を本質的にサポートしていますか? エンティティ自体のプロパティの変更の追跡をサポートしていることは知っていますが、これは少し違うと思います。

Entity Framework にない場合、これを実現するための簡単な方法として何が推奨されるのか疑問に思っています。

シナリオは、自動プッシュベースのデータ転送が毎時間発生し、プッシュが開始されるたびに、サーバーは最後のプッシュ以降に追加されたレコードを認識し、それらをプッシュする必要があるというものです。

これに対する標準的で信頼できるアプローチを知っている人はいますか? 私は独自のソリューション (主キー、DateTime 列などを監視) を作成しましたが、車輪を再発明したくありません。

4

2 に答える 2

2

探している機能は、まさに変更追跡(シナリオのような同期のために変更された行を追跡する) および/または変更データ キャプチャ(監査などのより複雑なシナリオのために、データの変更前のイメージを含む変更内容を正確に追跡する) です。Comparing Change Data Capture and Change Trackingに2 つの比較があり、これら 2 つのアドレスの主なシナリオについても説明しています。特定の種類の変更を検出したり、変更の追跡を中断する操作を防止したりするために、エンジンで特別なサポートが必要なため、「独自のロール」は機能しないことに注意してください。

Entity Framework はこれらの操作とは関係ありません。

于 2011-06-06T22:01:43.060 に答える
0

Entity Framework があなたが探しているものを提供するとは思いません。頭のてっぺんから2つのソリューションを考えることができました(MS SQL Serverを使用していると仮定します):

rowversion列を使用し、更新チェック ルーティングで現在の rowversion を使用して別の列を更新します。変更チェック ルーティングが再度実行されたときに、rowversion が rowversioncopy と一致しない場合は、変更されていることがわかります。これは、処理している行の数に応じて、実行可能なアプローチである場合とそうでない場合があります。

もう 1 つの方法は、テーブルでトリガーを使用して、変更処理を開始させることです。

于 2011-06-06T21:51:39.157 に答える