コード例 #1
0
        public static IEnumerable <TEntity> Search <TEntity>(this IDbConnection connection, SearchParameters searchParameters, ITypeMappingProvider typeMappingProvider = null, string palceHoder = "@")
        {
            var entityType = typeof(TEntity);

            //构建表名
            var tableName = entityType.Name;

            if (typeMappingProvider != null)
            {
                tableName = typeMappingProvider.GetTableName(entityType);
            }

            //构建查询列
            var columns = string.Join(",", entityType.GetProperties().Select(x => $" {x.Name} "));

            if (typeMappingProvider != null)
            {
                columns = string.Join(",", entityType.GetProperties().Select(x => $" {typeMappingProvider.GetColumnName(x)} "));
            }

            var builder = new StringBuilder($"SELECT {columns} FROM {tableName}");

            //构建Where语句
            var sqlWhere = searchParameters.BuildSqlWhere();

            if (!string.IsNullOrEmpty(sqlWhere.Item1))
            {
                builder.Append(sqlWhere.Item1);
            }

            //构建Order By语句
            var sqlOrderBy = searchParameters.BuildSqlOrderBy();

            if (!string.IsNullOrEmpty(sqlOrderBy))
            {
                builder.Append(sqlOrderBy);
            }

            //构建Limit语句
            var sqlLimit = searchParameters.BuildSqlLimit();

            if (!string.IsNullOrEmpty(sqlLimit))
            {
                builder.Append(sqlLimit);
            }

            //查询
            var sql = builder.ToString();

            if (sqlWhere.Item2 != null && sqlWhere.Item2.Any())
            {
                return(connection.Query <TEntity>(sql, sqlWhere.Item2));
            }
            return(connection.Query <TEntity>(sql));
        }
コード例 #2
0
        public static IEnumerable <TEntity> Search <TEntity>(this IDbConnection connection, SearchParameters searchParameters)
        {
            var builder = new StringBuilder($"SELECT * FROM {typeof(TEntity).Name}");

            //构建Where语句
            var sqlWhere = searchParameters.BuildSqlWhere();

            if (!string.IsNullOrEmpty(sqlWhere.Item1))
            {
                builder.Append(sqlWhere.Item1);
            }

            //构建Order By语句
            var sqlOrderBy = searchParameters.BuildSqlOrderBy();

            if (!string.IsNullOrEmpty(sqlOrderBy))
            {
                builder.Append(sqlOrderBy);
            }

            //构建Limit语句
            var sqlLimit = searchParameters.BuildSqlLimit();

            if (!string.IsNullOrEmpty(sqlLimit))
            {
                builder.Append(sqlLimit);
            }

            //查询
            var sql = builder.ToString();

            if (sqlWhere.Item2 != null && sqlWhere.Item2.Any())
            {
                return(connection.Query <TEntity>(sql, sqlWhere.Item2));
            }
            return(connection.Query <TEntity>(sql));
        }