我正在尝试建立一个异步方法来读取记录或在找不到匹配项的情况下创建它。

我正在使用SQLite.Net提供的异步API。

就我所知,但是我认为我在概念上苦苦挣扎,existsOpponent始终为null,因此始终执行插入操作。

public async Task<TestEntity> CreateOrGet(string name, CancellationToken cancellationToken = default(CancellationToken))
{
    var existingEntity = await Database.GetConnection(cancellationToken)
        .Table<TestEntity>()
        .Where(o => o.Name == name)
        .FirstOrDefaultAsync();

    if (existingEntity == null)
    {
        var newEntity = new TestEntity() { Name = name };

        var rowCount = await Database.GetConnection(cancellationToken)
            .InsertAsync(newEntity);

        return newEntity;
    }

    return existingEntity;
}


有谁能指出我正确的方向?

最佳答案

是查询问题,而不是异步问题。

关于c# - 我如何嵌套异步语句,而嵌套语句的执行取决于第一个的结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23963335/

10-14 09:37