为什么实体框架具有AddAsync?

时间:2018-10-31 11:21:44

标签: c# .net entity-framework entity-framework-core

我理解EF为什么有ToListAsyncSaveChangesAsync的原因-因为它等待db操作执行。但是AddAsync仅返回Task.FromResult-那么为什么会有AddAsync方法呢?为什么要使用它?

2 个答案:

答案 0 :(得分:9)

来自documentation

  

此方法是异步的,仅允许特殊值生成器(例如“ Microsoft.EntityFrameworkCore.Metadata.SqlServerValueGenerationStrategy.SequenceHiLo”使用的生成器)异步访问数据库。对于所有其他情况,应使用非异步方法。

SqlServerValueGenerationStrategy.SequenceHiLo

  

一种基于序列的逻辑模式,其中从服务器分配ID块,并将其用于客户端以生成密钥。

另请参阅What's the Hi/Lo algorithm?

答案 1 :(得分:0)

  

以“已添加”状态开始跟踪给定的实体以及尚未被跟踪的任何其他可达实体,以便在调用SaveChanges()时将其插入数据库中。

https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcore.dbcontext.addasync?view=efcore-2.1