概述:
使用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就是组合查询