public override async Task <List <long> > SelectIds(Expression <Func <T, bool> > @where, bool isIncludeDeleted = false)
        {
            var sb = new StringBuilder();

            sb.Append($"{SQLConstants.SELECT} {_sqlConstants.IdFieldName}{Environment.NewLine}");
            sb.Append($"{SQLConstants.FROM} {_sqlConstants.TableFullName}{Environment.NewLine}");

            if (isIncludeDeleted)
            {
                sb.Append($"{SQLConstants.WHERE} {_entityUtils.GetFieldNameFromPropertyName(nameof(BaseEntity.IsDeleted))} = true");
            }
            else
            {
                sb.Append($"{SQLConstants.WHERE} {_entityUtils.GetFieldNameFromPropertyName(nameof(BaseEntity.IsDeleted))} = false");
            }

            var parameters = new List <NpgsqlParameter>();

            if (where != null)
            {
                var prmDictionary = new Dictionary <string, DbParameterInfo>();
                var conditions    = _expressionUtils.GetConditions(where.Body, prmDictionary);
                AddToParameters(parameters, prmDictionary);

                sb.Append($" AND {conditions}");
            }

            var result = await SQLExecutor.ExecuteSqlReturningList <long>(sb.ToString(), parameters);

            return(result);
        }