试试
var result = await AssignAsync<T>(key, async () => await _repository.FindAsync(id));
谢谢,还是错误:无法将异步 lambda 表达式转换为委托类型:Func<T>
@嗷嗷嗷啊: 知道原因了,上面的写法针对的是 Func<Task<T>>,改为下面的试试
var result = await AssignAsync(key, () => _repository.Find(id));
@dudu: 老大,这样和我发的问题中的一模一样。- -‘
@嗷嗷嗷啊: 这里是_repository.Find(id)
,不是_repository.FindAsync(id)
,如果你要用 _repository.FindAsync(id)
,需要修改 AssignAsync<T>
:
public async Task<T> AssignAsync<T>(string key, Func<Task<T>> acquire) {}
var result = await AssignAsync<T>(key, async () => await _repository.FindAsync(id));