- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 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/
这个有效: await AddRangeAsync(myEntities); 但这行不通: await AddEntities(myEntities); ...当我尝试使用此功能时: private
我正在使用 EF Core 插入条目,我注意到当我调试这行代码时 context.MyEntityDbSet.AddRangeAsync(records) 加载需要一秒钟,而不是 context .M
我是一名优秀的程序员,十分优秀!