DbSet 没有用于删除范围的异步方法?

Not*_*bad 14 entity-framework-core

我找不到RemoveRange 的异步版本。例如,它存在于AddRange. 有人知道为什么吗?对我来说,没有一套同质的命令似乎很奇怪。

Iva*_*oev 17

因为它是同步操作,所以提供Async同步运行并返回已完成任务的假方法会产生误导并且违反异步方法原则。

EF Core 仅为可能访问数据库的方法提供异步版本 - 例如Add{Range}FindSaveChangesDispose和仅同步版本,为纯粹在状态(更改跟踪器)上操作的方法(如Attach{Range}Update{Range}、 )提供同步版本Remove{Range}

至于为什么有异步版本,文档Add{Range}中解释了原因:

此方法是异步的,仅允许特殊值生成器(例如 所使用的值生成器)Microsoft.EntityFrameworkCore.Metadata.SqlServerValueGenerationStrategy.SequenceHiLo异步访问数据库。