我無法在任何地方找到任何信息。.net核心中是否有DBSet.UpdateAsync()和RemoveAsync()?
有ToListAsync(),
AddAsync()
多,但找不到任何文件有關UpdateAsync()
或RemoveAsync().
有誰知道這事?
我無法在任何地方找到任何信息。.net核心中是否有DBSet.UpdateAsync()和RemoveAsync()?
有ToListAsync(),
AddAsync()
多,但找不到任何文件有關UpdateAsync()
或RemoveAsync().
有誰知道這事?
ToListAsync
存在,因爲它實際上使EF頭關到數據存儲檢索數據。這可能需要一段時間,因此您可以異步調用它。
AddAsync
但是,只開始跟蹤實體,但實際上不會發送任何更改到數據庫,直到您撥打SaveChanges
或SaveChangesAsync
。除非你知道你在做什麼,否則你不應該使用這種方法。該方法的異步版本存在在docs解釋的原因:
此方法是異步只允許特殊值發生器,例如由「Microsoft.EntityFrameworkCore.Metadata.SqlServerValueGenerationStrategy.SequenceHiLo」所使用的一個,異步訪問數據庫。對於所有其他情況,應使用非異步方法。
因此'AddAsync'可以從服務器獲取一個自動生成的值(自動增量鍵等),而不調用'SaveChanges'例如? –
@AlexanderDerck我相信這是在你使用[sequences](https://msdn.microsoft.com/en-us/library/ff878058.aspx)時使用的,因爲你可以在插入表之前從它們獲得一個數字。如果不先保存更改,您將無法獲得自動遞增的密鑰。 – DavidG
,或者可以使用小巧精緻的ORM
SaveChangesAsync是您正在尋找的。 – DavidG
所以,我調用dataset.Update()然後dataset.SaveChangesAsync()? –