我使用以下代码删除实体框架中的最后N条记录:
采取最后N个元素的扩展方法,取自此处:
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()
只会根据添加到数据库的顺序返回最后一个项目。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句