使用XCode对自定义Sql进行查询并返回实体List

所属源码: XCode
sam 2022-04-10 00:23:58

概述:

使用XCode使用自定义Sql进行查询并返回实体

函数代码

/// <summary>
/// 自定义实体查询
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="table"></param>
/// <param name="where"></param>
/// <param name="page"></param>
/// <param name="connName"></param>
/// <returns></returns>
public static List<T> QueryPageEntity<T>(string table, string where, PageParameter page, string connName = "")
{
    //基础Sql
    string basicSql = "";

    //分页Sql

    if (table.Contains("select") || table.Contains(" "))
    {
        basicSql = $"select * from ({table}) as tb_tmp";
    }
    else
    {
        basicSql = $"select * from {table}";
    }

    string viewSql = basicSql;
    if (!string.IsNullOrEmpty(where))
    {
        viewSql += " where " + where;
    }

    if (string.IsNullOrEmpty(page.OrderBy))
    {
        throw new Exception("需要指定Order by 字段值, 例 Id desc");
    }
    viewSql += " order by " + page.OrderBy;

    if (string.IsNullOrEmpty(connName))
    {
        connName = "AyCenter";
    }

    //分页数据
    DAL dal = XCodeHelper.GetDal(connName);
    //得到分页数据
    IEnumerable<T> tmpList = dal.Query<T>(viewSql, null, page);
    if (tmpList != null)
    {
        return tmpList.ToList();
    }

    return null;
}

具体使用

        /// <summary>
        /// 得到文章的前10条信息
        /// </summary>
        /// <param name="topNums"></param>
        /// <returns></returns>
        public static List<SourceArticleExt> GetTopListByViewNums(int topNums = 10)
        {
            return XCodeHelper.QueryViewEntityList<SourceArticleExt>(ViewSql, "", topNums,"ViewNums desc");
        }

其中ViewSql就是组合查询

回帖
  • 消灭零回复
相关文章