实现同步方法的异步版本:如何返回常量为1的Task <int>?

g.p*_*dou 6 .net c# async-await

我有一个sync方法,现在我想实现它的异步版本.幸运的是,底层调用已经有一个异步版本(dbSet.SaveChangesAsync()),但是在我的算法中有一个if分支以常量文字1返回.

我不知道如何在异步版本中实现这个部分?

同步版本:

    public virtual int Add(T entity)
    {
        SetLogContext(entity, _logctx);
        dbSet.Add(entity);

        if (isAutonomous)
        {
            return ctx.SaveChanges();
        }
        return 1;
    }
Run Code Online (Sandbox Code Playgroud)

异步版本:

    public virtual Task<int> AddAsync(T entity)
    {
        SetLogContext(entity, _logctx);
        dbSet.Add(entity);

        if (isAutonomous)
        {
            return ctx.SaveChangesAsync();
        }
        return ??? // What to write here?
    }
Run Code Online (Sandbox Code Playgroud)

Gen*_*mer 15

使用

return Task.FromResult(1);
Run Code Online (Sandbox Code Playgroud)

  • 文档可以在[这里]找到(https://msdn.microsoft.com/en-us/library/hh194922%28v=vs.110%29.aspx) (3认同)