gpt4 book ai didi

c# - 删除行时内存不足 > 500000 Entity Framework 6

转载 作者:行者123 更新时间:2023-11-30 13:45:51 26 4
gpt4 key购买 nike

我得到的:

我有一个很大的地址列表(ip addr) > 百万

我正在尝试做的事情:

通过 EntityFramework 高效删除 500k 地址

我的问题:

现在,我将分成 10000 个地址的列表并使用 RemoveRange(ListOfaddresses)

if (addresses.Count() > 10000)
{
var addressChunkList = extension.BreakIntoChunks<Address>(addresses.ToList(), 10000);
foreach (var chunk in addressChunkList)
{
db.Address.RemoveRange(chunk);
}
}

但是我得到了一个OutOfMemoryException,这一定意味着它没有释放资源,即使我将我的地址分成单独的列表也是如此。

我该怎么做才能避免出现 OutOfMemoryException 并在合理的时间内删除大量地址?

最佳答案

当我需要做类似的事情时,我转向了以下插件(我没有关联)。

https://github.com/loresoft/EntityFramework.Extended

这允许您使用 Entity Framework 进行批量删除,而无需先选择实体并将其加载到内存中,这当然效率更高。

网站示例:

context.Users.Delete(u => u.FirstName == "firstname");

关于c# - 删除行时内存不足 > 500000 Entity Framework 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26095431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com