我需要根据创建的日期从表中删除最后1000条记录,然后从不同的表中插入新的1000条记录。
最好的方法是什么?
public void mymethod()
{
// TestBasketRequests (delete thousands records from here)
// Call Delete();
}
public void Delete(IList<TestBasketRequest> TestBasketRequests)
{
using (var dbContext = new myContext())
{
dbContext.Entry(TestBasketRequests).State = EntityState.Deleted;
dbContext.SaveChanges();
}
}
答案 0 :(得分:2)
RemoveRange()
方法用于从数据库中删除多个项目。在方法中,您必须使用
来获取最后1000个项目TakeLast()
只会根据添加到数据库的顺序返回最后一项。
在你的mymethod()里面你必须写这样的东西
var lastN = MyDbContext.MyDbSet
.OrderByDescending(g => g.CreateDate)
.Take(1000);
MyDbContext.MyDbSet.RemoveRange(lastN);
我没有测试此代码。您可以根据自己的要求进行更改。