gpt4 book ai didi

c# - 何时在 EF Core 中使用异步方法?

转载 作者:行者123 更新时间:2023-12-04 13:13:39 27 4
gpt4 key购买 nike

我正在使用 SQL 数据库构建一个应用程序,其中包含以下 CRUD 操作:

public Foo Add(Foo foo)
{
_dbContext.Foos.Add(foo);
_dbContext.SaveChanges();
return foo;
}

public Foo Delete(int id)
{
Foo foo = _dbContext.Foos.Find(id);
if(foo != null)
{
_dbContext.Foos.Remove(foo);
_dbContext.SaveChanges();
}
return foo;
}

但是,其中一些方法具有异步版本。以下仍然有效:
public async Task<Foo> Add(Foo foo)
{
await _dbContext.Foos.AddAsync(foo);
await _dbContext.SaveChangesAsync();
return foo;
}

public async Task<Foo> Delete(int id)
{
Foo foo = await _dbContext.Foos.FindAsync(id);
if(foo != null)
{
_dbContext.Foos.Remove(foo);
await _dbContext.SaveChangesAsync();
}
return foo;
}

只有在调用方法后仍然需要变量时才需要吗?

Foo foo = await _dbContext.Foos.FindAsync(id);
如果我传入 Foos 列表以添加到数据库中怎么办?

最佳答案

Is it only necessary when you still need the variable after calling the method?



一般来说,如果有异步 API,那么你应该将它们用于新代码。

异步代码释放调用线程。如果您的应用程序是 GUI 应用程序,这可以释放 UI 线程;如果您的应用程序是服务器应用程序,这可以释放线程来处理其他请求。

关于c# - 何时在 EF Core 中使用异步方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62312361/

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