SQLSugar单列查询Select和条件查询Where的封装
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
仅供学习参考,如有侵权联系我删除。