1

ストレージとして sql azure を使用しています。

新しいレコードと古いレコードの両方を含むデータ セット (エンティティのリスト) があります。どのレコードが更新または挿入されているかを特定する方法がありません。EFを使用してすべてをdbに送信し、それをどうするかを特定するステートメントを使用する方法が必要です(更新または挿入を意味します)

オブジェクト コンテキストを使用してマージを見つけることができましたが、それは私の目的には合いません。

ご不明な点がございましたら、お尋ねください。

4

1 に答える 1

0

ここにはいくつかのオプションがありますが、そのすべてにおいて、EF はどのエンティティが新しいもので、どれが古いものであるかを何らかの方法で認識しなければなりません。

  • 変更の追跡は EF に任せます。つまり、同じコンテキスト インスタンスからクエリと保存を行います。これは明らかな答えであり、アーキテクチャがこれを許可していないか、質問をしていないと思うので、これ以上は言いません。
  • それが古いか新しいかを知ることができる実体のいくつかの特徴を持っています。これは、EF 変更追跡を使用できない場合に行う最も一般的な方法です。通常、これは主キーの値を使用して行われます。新しいエンティティの場合はゼロ/負の数/null のようなもので、古いエンティティの場合はその他すべてです。
  • 各エンティティのデータベースをクエリして、エンティティが存在するかどうかを確認します。
于 2012-11-09T18:14:02.497 に答える