【问题标题】:Are there DBSet.UpdateAsync() and RemoveAsync() in .net core?.net 核心中是否有 DBSet.UpdateAsync() 和 RemoveAsync()?
【发布时间】:2017-06-21 10:00:46
【问题描述】:

我在任何地方都找不到这方面的任何信息。

ToListAsync(),AddAsync()等等,但找不到任何关于UpdateAsync()RemoveAsync().的文档

有人知道吗?

【问题讨论】:

  • SaveChangesAsync 是您正在寻找的。​​span>
  • 所以,我调用 dataset.Update() 然后调用 dataset.SaveChangesAsync()?

标签: .net entity-framework .net-core async-await


【解决方案1】:

ToListAsync 存在是因为它实际上导致 EF 前往数据存储以检索数据。这可能需要一些时间,因此您可以异步调用它。

但是,AddAsync 仅开始跟踪实体,但实际上不会将任何更改发送到数据库,直到您调用 SaveChangesSaveChangesAsync。除非您知道自己在做什么,否则您不应该真正使用这种方法。这个方法存在异步版本的原因在docs中有解释:

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

UpdateRemoveAdd 相同,因为它们只影响内部跟踪,直到您保存所做的更改。

【讨论】:

  • 所以AddAsync 可以从服务器获取自动生成的值(自动增量键等)而不调用SaveChanges
  • @AlexanderDerck 我相信它在您使用sequences 时使用,因为您可以在插入表格之前从它们那里获得一个数字。如果不先保存更改,您将无法获得自动递增的密钥。
猜你喜欢
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
  • 2018-06-30
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
  • 2017-01-05
  • 1970-01-01
相关资源
最近更新 更多