public virtual async Task <TEntity> FindAsync(int id) { using (await Mutex.LockAsync().ConfigureAwait(false)) { try { var sql = $@"SELECT * FROM {EntityExtensions.GetTableName(typeof(TEntity))} WHERE {EntityExtensions.IdentifierPropertyName( typeof(TEntity))} = ?" ; var list = await _connection.QueryAsync <TEntity> (sql, id); if (list.Count > 0) { return(list [0]); } } catch (Exception ex) { Debug.WriteLine(ex.Message); } return(default(TEntity)); } }