gpt4 book ai didi

c# - 为什么修改数据库数据的查询是可等待的,而只读取数据的查询不是?

转载 作者:太空宇宙 更新时间:2023-11-03 18:53:10 25 4
gpt4 key购买 nike

我可以将新行异步写入数据库:

await dbContext.Chatlogs.AddAsync(new ChatMessage(messageString, time, author));
await dbContext.SaveChangesAsync();

但是如果只从数据库中读取内容呢?

string firstMessageEverPosted = dbContext.Chatlogs.OrderBy(msg => msg.time).First().content;

这里没有await。而插入 await 会导致编译错误:

string doesntWork = await dbContext.Chatlogs.OrderBy(msg => msg.time).First().content;

我是不是遗漏了什么或者无法从数据库中异步读取内容?如果是这样,我很好奇与仅阅读内容有什么根本不同,以至于允许异步执行此操作被认为没有用?

最佳答案

因为 First 不是异步的。尝试使用 FirstAsync 代替:

string works = (await dbContext.Chatlogs.OrderBy(msg => msg.time).FirstAsync()).content;

关于c# - 为什么修改数据库数据的查询是可等待的,而只读取数据的查询不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52038568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com