杭州网站优化外包国内永久免费云服务器
sqlsugar官网:
SqlSugar .Net ORM 5.X 官网 、文档、教程 - SqlSugar 5x - .NET果糖网
如题:
官网里有个查询一列的例子。
db.Queryable<Student>().Select(it=>it.Name).ToList() //单值 查询列 查询单独列
如图:
想着把它封装一下。如下:
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;// 假设这是你的 WI_ARTICLE 类
public class WI_ARTICLE
{public int ID { get; set; }public string Title { get; set; }public string Content { get; set; }
}public class Repository
{private static SqlSugarClient db = new SqlSugarClient(new ConnectionConfig(){ConnectionString = "your_connection_string",DbType = DbType.SqlServer,IsAutoCloseConnection = true});public static List<TResult> QueryWithSelect<TSource, TResult>(Expression<Func<TSource, TResult>> selectExpression){return db.Queryable<TSource>().Select(selectExpression).ToList();}
}class Program
{static void Main(){// 查询部分数据并映射到模型上var articles = Repository.QueryWithSelect<WI_ARTICLE, WI_ARTICLE>(s => new WI_ARTICLE{ID = s.ID// 可以根据需要添加更多属性}).ToList();foreach (var article in articles){Console.WriteLine($"ID: {article.ID}");}}
}
这样就可以按需查询对应的列了。较比下面查所有要效率高。
List<Student> list=db.Queryable<Student>().ToList()
//select * from Student
补充:条件查询的封装
sqlsugar分页例子:
分页查询,同步分页和异步分页 - SqlSugar 5x - .NET果糖网
具体封装如下:
#region 方法:单表分页查询 + public List<T> QueryByWherePage(int pageIndex, int pageSize, Expression<Func<T, bool>> whereExpression, string orderbyStr)
/// <summary>
/// 单表分页查询
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">页容量</param>
/// <param name="whereExpression">条件表达式</param>
/// <param name="orderbyStr">排序字段</param>
/// <returns></returns>
public List<T> QueryByWherePage(int pageIndex, int pageSize, Expression<Func<T, bool>> whereExpression, string orderbyStr)
{using (SqlSugarClient dbClient = SqlSugarInstance.GetInstance()){return dbClient.Queryable<T>().Where(whereExpression).OrderBy(orderbyStr).ToPageList(pageIndex, pageSize);}
}
#endregion
仅供学习参考,如有侵权联系我删除。