質問: Entity Frameworkの最後のNレコードを削除するために、次のコードを使用します。 拡張メソッドは、から取られた最後のN個の要素、取るためにここに : ``` public static IEnumerable TakeLast(this IEnumerable source, int N) { return source.Skip(Math.Max(0, source.Count() - N)); } ``` 最後のN要素を削除する: ``` MyDbContext.MyDbSet.RemoveRange(MyDbContext.MyDbSet.TakeLast(N)); ``` それは効果的ですか?私は車輪を再発明したくありません。たぶん、私はcollection.RemoveLastのような既存の関数をいくつか見逃していたかもしれませんが(私の最初の努力で見つけられませんでしたが)?
回答: あなたが持っている方法は大丈夫です。 `RemoveRange()`メソッドは、データベースから複数の項目を削除するために使用されます。最後のn個のアイテムを取得するために使用しているメソッドも大丈夫です。ただし、 `TakeLast()`はデータベースに追加された順序に基づいて最後の項目のみを返します。