Files

189 lines
6.6 KiB
C#
Raw Permalink Normal View History

using System;
using System.Collections.Generic;
using System.Linq.Expressions;
namespace Mtxfw.Utility.DataAccess
{
/// <summary>
/// 查询类
/// </summary>
public partial class Sql : DbHelperSqlSugar
{
/// <summary>
/// 查询所有
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public List<T> FindAll<T>() where T : class, new()
{
return Db.Queryable<T>().ToList();
}
/// <summary>
/// 条件查询
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="predicate"></param>
/// <param name="orderByPredicate"></param>
/// <param name="orderType"></param>
/// <returns></returns>
public List<T> FindAll<T>(Expression<Func<T, bool>> predicate, Expression<Func<T, object>> orderByPredicate, SqlSugar.OrderByType orderType) where T : class, new()
{
return Db.Queryable<T>().Where(predicate).OrderBy(orderByPredicate, orderType).ToList();
}
/// <summary>
/// 条件查询,带排序
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="predicate"></param>
/// <param name="orderByStr"></param>
/// <returns></returns>
public List<T> FindAll<T>(Expression<Func<T, bool>> predicate, string orderByStr) where T : class, new()
{
return Db.Queryable<T>().Where(predicate).OrderBy(orderByStr).ToList();
}
/// <summary>
/// 根据主键查询
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="predicate"></param>
/// <returns></returns>
public T Find<T>(int keyValue) where T : class, new()
{
return Db.Queryable<T>().InSingle(keyValue);
}
/// <summary>
/// 根据主键查询
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="predicate"></param>
/// <returns></returns>
public T Find<T>(long keyValue) where T : class, new()
{
return Db.Queryable<T>().InSingle(keyValue);
}
/// <summary>
/// 查询第一条数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="predicate"></param>
/// <returns></returns>
public T FindFirst<T>(Expression<Func<T, bool>> predicate) where T : class, new()
{
return Db.Queryable<T>().Where(predicate).First();
}
/// <summary>
/// 查询第一条数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="predicate"></param>
/// <returns></returns>
public T FindFirst<T>(Expression<Func<T, bool>> predicate, string orderBy) where T : class, new()
{
return Db.Queryable<T>().Where(predicate).OrderBy(orderBy).First();
}
/// <summary>
/// 查询数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="predicate"></param>
/// <returns></returns>
public List<T> Find<T>(Expression<Func<T, bool>> predicate) where T : class, new()
{
return Db.Queryable<T>().Where(predicate).ToList();
}
/// <summary>
/// 查询数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="predicate"></param>
/// <returns></returns>
public List<T> Find<T>(Expression<Func<T, bool>> predicate, string orderBy) where T : class, new()
{
return Db.Queryable<T>().Where(predicate).OrderBy(orderBy).ToList();
}
/// <summary>
/// 获取记录条数
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="predicate"></param>
/// <returns></returns>
public int GetCount<T>(Expression<Func<T, bool>> predicate) where T : class, new()
{
return Db.Queryable<T>().Where(predicate).Count();
}
/// <summary>
/// 取前几条数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="count"></param>
/// <param name="predicate"></param>
/// <param name="orderByPredicate"></param>
/// <param name="orderType"></param>
/// <returns></returns>
public List<T> FindTake<T>(int count, Expression<Func<T, bool>> predicate, Expression<Func<T, object>> orderByPredicate, SqlSugar.OrderByType orderType) where T : class, new()
{
return Db.Queryable<T>().Where(predicate).OrderBy(orderByPredicate, orderType).Take(count).ToList();
}
/// <summary>
/// 取前几条数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="count"></param>
/// <param name="predicate"></param>
/// <param name="orderBy"></param>
/// <returns></returns>
public List<T> FindTake<T>(int count, Expression<Func<T, bool>> predicate, string orderBy) where T : class, new()
{
return Db.Queryable<T>().Where(predicate).OrderBy(orderBy).Take(count).ToList();
}
/// <summary>
/// 取前几条数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="count"></param>
/// <param name="predicate"></param>
/// <returns></returns>
public List<T> FindTake<T>(int count, Expression<Func<T, bool>> predicate) where T : class, new()
{
return Db.Queryable<T>().Where(predicate).Take(count).ToList();
}
/// <summary>
/// 执行事务
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sqlStr"></param>
/// <param name="obj"></param>
/// <returns></returns>
public List<T> FindTran<T>(Expression<Func<T, bool>> predicate, string orderBy) where T : class, new()
{
var result = Db.Ado.UseTran<List<T>>(() =>
{
return Db.Queryable<T>().Where(predicate).OrderBy(orderBy).ToList();
throw new Exception("error haha");
});
return null;
}
/// <summary>
/// 查询数据
/// </summary>
/// <typeparam name="T"></typeparam>
/// <typeparam name="T2"></typeparam>
/// <param name="joinExpression"></param>
/// <returns></returns>
public void FindTest<T, T2>(Expression<Func<T, T2, object[]>> joinExpression) where T : class, new()
{
Db.Queryable<T, T2>(joinExpression);
}
}
}