データベースに存在しないレコードを削除したい。例を挙げます。コントローラーに 3 つの質問を送信しています。Q1、Q3、Q4。データベースには、Q1 と Q2 の 2 つのレコードしかありません。次に、Q2 を削除し、Q3 と Q4 を追加する必要があります。このためにlinqを使用してクエリを作成するにはどうすればよいですか。私の質問を理解していただければ幸いです。
よろしく、 スリ
データベースに存在しないレコードを削除したい。例を挙げます。コントローラーに 3 つの質問を送信しています。Q1、Q3、Q4。データベースには、Q1 と Q2 の 2 つのレコードしかありません。次に、Q2 を削除し、Q3 と Q4 を追加する必要があります。このためにlinqを使用してクエリを作成するにはどうすればよいですか。私の質問を理解していただければ幸いです。
よろしく、 スリ
私はそれについてあまり知りませんが、大量のデータでない場合は、次のようなことを試すことができます:
List<object> inserted = null; // Change null for all the elements in the table.
IEnumerable<object> diff = newItems.Except(inserted); // Assume newItems is the list with new items.
foreach(object elem in diff)
{
if (newItems.Contains(elem))
// insert
else
// delete
}
(基本型ではなく) オブジェクトの比較は機能しないことに注意してください。ここに示すように、IEqualityComparer を作成する必要があります。