/ / EFを使用したマージの挿入と更新-エンティティフレームワーク、エンティティフレームワーク4

EF - entity-framework、entity-framework-4を使用したマージの挿入と更新

SQL Azureをストレージとして使用しています。

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

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

不明な点がある場合は、お問い合わせください。

回答:

回答№1は0

ここにはいくつかのオプションがありますが、それらのすべてで、EFはどういうわけか、どのエンティティが新しく、どれが古いかを知る必要があります。

  • EFに変更の追跡を行わせます。 つまり、同じコンテキストインスタンスからクエリと保存を行います。これは明白な答えであり、「あなたのアーキテクチャがこれを許可していないか、あなたが質問をしていないと思うので、私はそれについてあまり多く語らない」。
  • できるエンティティの特性を持っている古いか新しいかを知っています。これは、EF変更追跡を使用できない場合に行う最も一般的なことです。通常、これはプライマリキー値を使用して行われます。
  • 各エンティティのデータベースを照会して、存在するかどうかを確認します。