質問: 私は、親テーブルと子テーブルを持っています。ここでは、親テーブルと子テーブルは、親テーブルと子テーブルとの間に1対多の関係があります。 私は子供の一部を削除したい、私は親の子コレクションにその変更を反映させたい。 `RemoveRange`を使用して選択した子を削除すると、子コレクションは更新されません。 `Remove`を使用して子コレクションから子を削除すると(明らかに)、 `RemoveRange`を使用するほど効率的ではありません。 そこで`RemoveRange`を使用して子を効率的に削除し、次に`Remove`を使用して子コレクションから子を削除する必要があります。これは正しいのですか、それを行う良い方法がありますか?
回答: `RemoveRange`を使用すると、子コレクションからオブジェクトを削除する際のオーバーヘッドになります。特に、 `Remove`を使用してオブジェクトごとに1回ではなく1回実行される変更トラッキングを中心にしています。 どちらの方法でも、 `SaveChanges`を呼び出すと、データベースへのトリップは1回だけになります。 したがって、あなたの例では、 `RemoveRange`は冗長であり省略することができます。