gpt4 book ai didi

c# - 删除 Entity Framework 上下文中的所有记录并重新创建它的正确方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:30 25 4
gpt4 key购买 nike

我希望在文件系统中保存一个包含图像路径记录的数据库。似乎刷新记录的最好方法是删除所有记录,然后重新创建。由于每 5000 条记录大约需要 1 分钟,此时图像可能对 Web 服务器不可用,我想有一种方法可以做到这一点,5000 条记录只需要不到 1 分钟。那样会怎样?

这是一个慢代码的例子:

foreach(ImageRecord imageRecord in EntityFrameworkCollection)
{
databaseContext.ImageRecords.Remove(imageRecord);
}

//...SaveChanges() and/or recreate context

foreach(ImageRecord imageRecord in FileSystemCollection)
{
databaseContext.ImageRecords.Add(imageRecord);
}

最佳答案

有一个图书馆叫EntityFrameworkPlus我喜欢像你一样用于批量操作。您可以使用 DeleteAsync批量操作如下:

await databaseContext.ImageRecords.DeleteAsync();

它将删除您的所有记录,而无需遍历每条记录。快速地。很简单。

然后,为了批量添加,您可以使用 AddRangeAsync 方法,而不必遍历每条记录,如下所示:

await databaseContext.ImageRecords.AddRangeAsync(FileSystemCollection);
await databaseContext.SaveChangesAsync();

关于c# - 删除 Entity Framework 上下文中的所有记录并重新创建它的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57256186/

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