c# – 删除最后N条记录,实体框架

我使用以下代码删除实体框架中的最后N条记录:

取最后N个元素的扩展方法,取自here

public static IEnumerable<T> TakeLast<T>(this IEnumerable<T> 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()只会根据添加到数据库的顺序返回最后一项.

点赞