簡體   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