gpt4 book ai didi

c# - EF Core 中的 AddRange 和 AddRangeAsync 有什么区别

转载 作者:太空狗 更新时间:2023-10-29 23:04:56 25 4
gpt4 key购买 nike

我正在使用 EF Core 插入条目,我注意到当我调试这行代码时 context.MyEntityDbSet.AddRangeAsync(records) 加载需要一秒钟,而不是 context .MyEntityDbset.AddRange(records) 它立即发生。调用 AddRangeAsync 方法时是否发生了数据库调用?它与 AddRange 有什么不同吗?

最佳答案

据官方EF Core docs AddRangeAsync(IEnumerable<TEntity>, CancellationToken)应该与需要数据库往返的特殊值生成器一起使用。例如,如果您使用 SqlServerValueGenerationStrategy.SequenceHiLo提前分配 ID block ,当 EF 跟踪新实体时,它可能需要首先查询数据库并请求新的“Hi”(有关 Hi/Lo 算法的更多信息,请参见此处 What's the Hi/Lo algorithm?)。因此,当想法只是将实体设置为 Added 时状态和SqlServerValueGenerationStrategy.SequenceHiLo不需要,AddRange被使用。

关于c# - EF Core 中的 AddRange 和 AddRangeAsync 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56241351/

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