繁体   English   中英

如何使用Entity Framework按创建日期升序删除1000条记录?

[英]How to delete 1000 records based upon created date ascending using Entity Framework?

我需要根据创建日期从表中删除最后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();
    }
}

RemoveRange()

方法用于从数据库中删除多个项目。 在方法中,您必须使用来获取最近的1000个项目

TakeLast() 

将仅根据最后一项添加到数据库中的顺序返回最后一项。

在您的mymethod()内部,您必须编写如下内容

var lastN = MyDbContext.MyDbSet
                   .OrderByDescending(g => g.CreateDate)
                   .Take(1000);

MyDbContext.MyDbSet.RemoveRange(lastN);

我没有测试此代码。您可以根据需要进行更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM